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_IDIN(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; 
+0

那是什么我包换! :) 谢谢 – Gemmi