2017-08-07 39 views
-1

只是看到這樣的畫面: MySQL的選擇多對多有所有條件

如何我選擇dorm_id(70)?

dorm_id是home ides,facility是主題屬性,每個home有一些設施,例如home id 70有這些設施(12,13,14,17,18),如何從dorm_id中選擇數字70列。

它的搜索查詢發現,擁有所有設施提前

感謝dorm_id

+0

你能說清楚一點,你的要求不清楚。你想'設施ID'有'Dorm_id'爲70.? – Sinto

+0

你是什麼意思,這是唯一的宿舍,所有的設施id(12,13,14,17,18)'? –

+0

請參閱:[爲什麼我應該爲我認爲是非常簡單的SQL查詢提供一個MCVE?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve - 對於什麼似乎對我來說是一個非常簡單的SQL查詢) – Strawberry

回答

1

你能做到這樣,如果你有一臺名爲table_facility您facility_id:

select dorm_id 
from table_dorm 
group by dorm_id 
having count(distinct facility_id)=(select count(distinct facility_id) 
            from table_facility) 

如果您將它們放在同一個表格中,則可以使用此查詢來完成:

select dorm_id 
from table_dorm 
group by dorm_id 
having count(distinct facility_id)=(select count(distinct facility_id) 
            from table_dorm) 
+0

親愛的主席先生,我只需要選擇drom_id,例如那有facility_id 13和14,15和17和18, – kiamoz

+0

我想所以沒有更多的表只需看到圖片,你可以找到它 – kiamoz

+0

@kiamoz也許唯一問題是你不知道如何制定正確的問題,甚至不知道你需要什麼 – nacho

0

我解決了這個問題,你所需要的只是你不仔細看圖片!

SELECT dorm_id 
FROM dorm 
WHERE facility_id IN (12, 13, 14) 
GROUP BY doctor_id 
HAVING COUNT(DISTINCT ability_id) = 3