我有3张桌子
Entries Table
ID Name Title
1 test1 hello1
2 test2 hello2
3 test3 hello3
Keywords Table
ID Text
5 sample
6 testing
7 hello
EntryKey Table
ID KeywordID EntryID
1 5 1
2 6 2
3 7 3
4 6 2
5 7 1
条目和关键字有很多关系。每个条目可以有多个关键字,一个关键字可以在多个条目中
我想要的是获取条目及其相关关键字,但我不想重复列表中的条目。
我的尝试
SELECT e.id, e.title, e.name, e.text, e.emailaddress, k.text
FROM entries e
LEFT JOIN keyentries ke
ON e.id = ke.entryID
LEFT JOIN keywords k
ON k.id = ke.keywordID ;
但是它给了我两次输入1和2,因为它有两个关键字。 任何帮助
提前致谢
答案 0 :(得分:1)
使用GROUP_CONCAT将它们全部组合在一起。
SELECT e.id, e.title, e.name, e.text, e.emailaddress, GROUP_CONCAT(k.text) keywords
FROM entries e
LEFT JOIN keyentries ke
ON e.id = ke.entryID
LEFT JOIN keywords k
ON k.id = ke.keywordID
GROUP BY e.id;
答案 1 :(得分:0)
你可以这样做:
SELECT e.id, e.title, e.name, e.text, e.emailaddress, k.text
FROM entries e
LEFT JOIN keyentries ke
ON e.id = ke.entryID
LEFT JOIN keywords k
ON k.id = ke.keywordID
GROUP BY e.id;