假设我有下一张 table
Table names
id | name
1 | mike
2 | john
3 | jack
Table attributes
name_id | skill
1 | css
1 | html
1 | php
2 | html
2 | java
2 | css
3 | java
我需要获取所有具有例如 css 和 html 属性的 ID 和名称。我试过使用“JOIN”,但要搜索的属性数量可能不同。
我还没有尝试其他任何东西,因为我不知道该尝试什么。
谢谢
最佳答案
尝试使用 GROUP BY ...
和 HAVING COUNT(DISTINCT ...)
:
SELECT name_id
FROM attributes
WHERE skill IN ('css', 'html')
GROUP BY name_id
HAVING COUNT(DISTINCT skill) = 2
在线查看它:sqlfiddle
您也可以加入以获取名称。
关于MySQL:获取具有不同参数的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12599752/