Давайте рассмотрим 2 таблицы «школы» и «студенты». Теперь студент может принадлежать к различным школам в своей жизни, а в школе много учеников. Так что это много-много примеров. Третья таблица «ссылки» указывает связь между учеником и школой.от многих до много отношений mysql select
Теперь запросить это у меня следующее:
Select sc.sid , -- stands for school id
st.uid, -- stands for student id
sc.sname, -- stands for school name
st.uname, -- stands for student name
-- select more data about the student joining other tables for that
from students s
left join links l on l.uid=st.uid -- l.uid stands for the student id on the links table
left join schools sc on sc.sid=l.sid -- l.sid is the id of the school in the links table
where st.uid=3 -- 3 is an example
этот запрос будет возвращать дублирующиеся данные для идентификатора пользователя, если он имеет более чем одну школу, так, чтобы исправить это я добавил group by st.uid
, но мне также нужно список имени школы, связанного с одним и тем же пользователем. Есть ли способ сделать это с исправлением запроса, который я написал, вместо двух запросов? Так, например, я хочу, чтобы Люси школ (X, Y, Z, R, ...) и т. Д.
мое решение было слияние обоих Ronnis и Колючий Норман. Я делаю так: «GROUP_CONCAT» ((concat (sc.sid, '=', sc.sname) SEPARATOR ','), так как school_obj'' – Luci