位置=> PID(PK),名称...
Tag => TID(PK),TagName ...
TagPlaceRelation => ID(PK),PID(FK),TID(FK)多对多关系
如何获取所有位置记录及其所有标签
我尝试了以下查询,它返回了所有场所记录,但它仅包含与每个场所相关联的第一个标记,而并非必须。如何获取地点的所有标签以及地点数据。
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
答案 0 :(得分:0)
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与标签一一重复进行三次