我有以下数据的3代表在MySQL连接3个MySQL表,我究竟做错了
标签表
id | groupId | name |
-----------------------------
1 | 1 | tag1 |
2 | 1 | tag2 |
3 | 1 | tag3 |
4 | 1 | tag4 |
的groupId这里列是不重要的现在。
实践表
id | name |
----------------------
1 | practice 1 |
2 | practice 2 |
3 | practice 3 |
4 | practice 4 |
和两个(practiceTag表)之间的桥梁
id | practiceId | tagId |
-----------------------------------
1 | 1 | 1 |
2 | 1 | 2 |
3 | 1 | 3 |
4 | 2 | 1 |
但是当我尝试使用查询:
SELECT practice.name
FROM practice
INNER JOIN practiceTag ON practiceTag.practiceId = practice.id
INNER JOIN tags ON practiceTag.tagId = tags.id
WHERE (tags.id = "1"
AND tags.id = "2"
AND tags.id = "3")
它不会返回任何东西。那就好,因为我知道我的查询有点搞砸了。但是,尽可能接近我可以看到你,我希望我的查询做。
我搜索了论坛,发现我可以使用group_concat。但我无法让它工作。
任何帮助,将不胜感激。
感谢,塞巴斯蒂安
使用**或** WHERE你不能有一个字段值1和2以及3 - 只有1或2或3 –
使用'WHERE tag.id在(1,2,3)' – Akam
贝恩德感谢您的回复,但我有点寻找的方式只显示练习的名称,所有的标签 – Sebastjan