Как я могу перечислить все записи для соединенной таблицы, но одновременно отфильтровать?MySql

Форум по Mysql
Anonymous
Как я могу перечислить все записи для соединенной таблицы, но одновременно отфильтровать?

Сообщение Anonymous »

Допустим, у меня есть следующая структура: < /p>
courses < /p>



id < /th>
< /th>
< /br /> < /br /br /> < /br /br /> < /br /br /> < /thre> < /thre> < /thre> < /thre> < /thre> < /thead> < /br /> < /br />

1
Math


2
History



Студенты < /p>



id < /th>
name < /th>
courseId < /th>
< /tr>

< /br />

< /br />


1 < /td>
Bob < /td>
1 < /td>
< /tr>

2 < /td>
alice < /td>
1 1 1 1 1 1 1 1 1
1
< /td>
1
< /td>
1
< /td>
1 < /td /> < /tbody>
< /table> < /div>
Я хочу сделать запрос, в котором перечислены все студенты в курсе, но фильтровать курсы, если конкретный студент находится в этом курсе. PrettyPrint-Override ">

Код: Выделить всё

SELECT
c.name,
GROUP_CONCAT(s.name separator ',')
FROM
Courses as c
LEFT JOIN Students s ON s.courseID = c.ID
WEHRE
s.name = 'Alice'
GROUP BY
c.name
Я знаю, что я могу присоединиться дважды и использовать одну, чтобы сделать фильтрацию, а другой для использования для Group_concat , но он кажется неэффективным, потому что я присоединяюсь дважды. Есть ли более эффективный и/или странный способ сделать это?

Подробнее здесь: https://stackoverflow.com/questions/795 ... -same-time

Вернуться в «MySql»