Как выбрать все записи из трех таблиц, имеющих следующие отношения - PullRequest
0 голосов
/ 17 мая 2019

Место => PID (PK), Имя ...

Tag => TID (PK), TagName ...

TagPlaceRelation => ID (PK), PID (FK), TID (FK) Отношения многие ко многим

как получить все записи Place вместе со всеми их тегами

Я пробовал следующий запрос, и он возвращает запись всех мест, но он включает только первый тег, связанный с каждым местом, которое не требуется. Как я могу получить все метки места вместе с данными о месте.

SELECT p.PID, t.TagName     
FROM Place p    
LEFT JOIN TagPlaceRelation  tp ON p.PID= tp.PID    
LEFT JOIN Tag t ON tp.TID=t.TID    
ORDER BY p.ID

1 Ответ

0 голосов
/ 18 мая 2019
SELECT p.PID, t.TagName 
  FROM Place p LEFT JOIN TagPlaceRelation tp ON p.PID= tp.PID 
    LEFT JOIN Tag t ON tp.TID=t.TID;

Это теперь будет получать все места с тегами.Теперь, если у нас есть place1 с 3 тегами, то place1 будет повторяться три раза с тегами один за другим

...