MySQL的选择一对多
问题描述:
表1:MySQL的选择一对多
PRP_ID | NAME
----------------------
100 | something_100
101 | something_101
102 | something_102
表2:
ADN_ID | NAME
----------------------
11 | thing_11
22 | thing_22
33 | thing_33
表3:
ID | ADN_ID | PRP_ID | VALUE
----------------------------------------
1 | 11 | 100 | YES
2 | 22 | 100 | YES
3 | 11 | 101 | NO
4 | 22 | 101 | YES
5 | 33 | 102 | YES
这是我的数据库结构URE。 我想从过去的表中选择PRP_ID
其中ADN_ID
IN(11,22)
和WHERE VALUE = YES
两个ADN_ID
它应该通过很简单,但我不知道该怎么做了。
SELECT PRP_ID
FROM table3
WHERE ADN_ID IN(11,22)
AND VALUE = YES
GROUP BY PRP_ID
这是行不通的,因为它只会检查ADN_ID 11值
答
您可以添加having
条款:
SELECT PRP_ID
FROM table3
WHERE ADN_ID IN (11,22) AND VALUE = 'YES'
GROUP BY PRP_ID
HAVING COUNT(DISTINCT ADN_ID) = 2;
那是什么我包换! :) 谢谢 – Gemmi