我正在尝试按功能搜索Yelps。因此,我的业务可以具有许多功能,例如:Has TV
,Dogs Allowed
,Wi-Fi
等。
我做了这些表:
------------
|businesses|
|----------|
|id |
|name |
------------
------------------
|business_feature|
------------------
|business_id |
|feature_id |
------------------
-----------------
|features |
-----------------
|id |
|name |
-----------------
想象一下,我想找到一家餐馆(生意),我可以和带Wi-Fi和电视的狗一起去。因此,我需要显示具有以下所有功能的业务:Has TV(id:1)
,Dogs Allowed(id:6)
,Wi-Fi(id:11)
,如果没有这些功能,则不将其包括在结果中。
我尝试了以下SQL:
SELECT businesses.* FROM businesses
JOIN business_feature ON businesses.id = business_feature.business_id
JOIN features ON business_feature.feature_id = feature.id
WHERE feature.id IN (1,6,11)
它正在运行,但显示具有任何这些功能的企业。但是,我需要拥有全部而不是全部的业务。请帮助