один столбец имеет 2 одинаковые строки, и я хочу показать его первым

0

В этой таблице один столбец содержит 2 одинаковые строки, которые являются столбцами курса. Есть две строки, которые равны 612. Теперь я хочу написать запрос, чтобы показать эту строку как первую и оставшиеся строки после этого.

course_mapping_table

Изображение 174551

таблица курса

Изображение 174551

пользователи

Изображение 174551

И я написал запрос, как показано ниже, но не работает.

public function gettrendingcourse(){
    $sql="SELECT * FROM
    course c
    INNER JOIN course_student_mapping cm
    ON cm.courseId = c.courseId
    INNER JOIN users u
    ON c.userId = u.userId
    INNER JOIN category s
    ON s.categoryId=c.categoryId
    GROUP BY c.courseId HAVING count(*) >= 1
    ORDER BY cm.courseId DESC ";
    $query=$this->db->query($sql);

    return $query;  
}
  • 2
    У вас есть категория таблицы в вашем запросе, но не в вашем вопросе. Можете ли вы добавить пример данных в виде текста к вашему вопросу, а не изображения, которые мы не можем использовать (а в некоторых случаях могут быть заблокированы и не видны).
  • 0
    Я согласен с П.Салмоном. Вы не должны вставлять изображения, а вставлять таблицы как текст. Вы можете использовать кнопку {} для простого форматирования (или использовать HTML-теги <pre> и </ pre>).
Теги:

2 ответа

0

Используйте подзапрос в предложении ORDER BY, чтобы получить курсы, упорядоченные по количеству учащихся:

SELECT * 
FROM course c
JOIN course_student_mapping cm ON cm.courseId = c.courseId
JOIN users u ON u.userId = cm.studentid
JOIN category s ON s.categoryId = c.categoryId
ORDER BY 
(
  select count(*) 
  from course_student_mapping cm2
  where cm2.courseid = c.courseid
) DESC, courseid, studentid;
0

INNER JOIN users u ON c.userId = u.userId - это должно вызывать ошибку, нет видимого идентификатора пользователя в курсе, и я подозреваю, что соединение должно быть на cm.studentid.

  • 1
    Хорошо замечено, но это не отвечает на вопрос и, следовательно, должно быть комментарием, а не ответом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню