Рассмотрим 2 таблицы «школы» и «студенты». Теперь ученик может принадлежать к разным школам в своей жизни, и в школе много учеников. Так что это пример многих ко многим. В третьей таблице «ссылки» указывается отношение ученика к школе.
Теперь, чтобы запросить это, я делаю следующее:
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, ...) и т. Д.