2013-11-27 25 views
0

我有一個MySQL表像這樣MySQL查詢與主,次訪問ID

ownerlisting_access_id property_id mainaccess_id subaccess_id access_value 
62      2    35  41   Yes 
64      2    35  36   Yes 
123      4    35  41  Yes 
125      4    35  36  Yes 
306      7    35  41  Yes 
307      7    35  42  Yes 
308      7    35  36  Yes 

我需要得到它與41 服務於subaccess_id的PROPERTY_ID我需要得到PROPERTY_ID如7

+0

聽起來很有趣。祝你好運! (這可能會幫助你,如果你先嚐試自己,然後回來,讓我們知道你的嘗試,爲什麼它不起作用) – Kermit

+0

SELECT property_id FROM owner_property_accessibility WHERE subaccess_id ='41'AND subaccess_id ='42'AND subaccess_id = '36'GROUP BY property_id – mikejohnvino

+0

刪除該評論並將其置於您的問題中。 – Kermit

回答

0

這應該工作:

SELECT property_id FROM t 
WHERE subaccess_id IN (41, 42, 36) 
GROUP BY property_id 
HAVING COUNT(DISTINCT subaccess_id) = 3 

小提琴here

請記住,您應該將IN子句中元素的數量與HAVING子句中的數字相匹配。另請注意,如果您不能在給定的property_id上多次使用相同的subaccess_id,則可以刪除DISTINCT關鍵字。

+0

它的工作正常。謝謝。 – mikejohnvino

+0

不用說謝謝。這就是接受答案的地方:) –