我在這裏有3張桌子。如何從數據庫MySQL中獲取正確的複選框結果?
1)酒店
-----------------
|Hotel_ID | Name |
-----------------
| 1 |Shangrila |
----------------------
| 2 |GoldHill |
----------------------
| 3 |BayBeach |
----------------------
2)功能
----------------------
|Feature_ID| Feature |
----------------------
| 1 | Goft |
----------------------
| 2 |Internet |
----------------------
3)Brdige_Hotel_Feature
------------------------
|Hotel_ID | Feature_ID |
------------------------
| 1 | 1 |
------------------------
| 1 | 2 |
-----------------------
| 2 | 1 |
-----------------------
這意味着每家酒店可能有超過1種功能。
我的想法是這樣的,我們說,如果我要得到表3 Bridge_Hotel_Feature結果。 如果FEATURE_ID = 1,我得到 酒店1和2 **如果FEATURE_ID = 1,2,我只是想獲得 酒店1. 但我總是得到兩個HOTEL_ID 1和2 ** 請幫助我解決方案,只與Hotel_ID匹配。
下面是代碼我嘗試。
SELECT h.Name , h.Hotel_ID, f.feature
FROM Hotel h, Bridge1_Hotel_Features b, Features f
where 0=0
AND b.Feature_ID = f.Feature_ID
AND b.Hotel_ID = r.Hotel_ID
<cfif #FORM.Feature_ID# IS NOT "">
AND f.Feature_ID IN (#FORM.Feature_ID#)
</cfif>
首先謝謝你,我已經嘗試了你給我的第一個代碼。 但我沒有得到任何結果,即使只勾選1框。 順便說一下,我可以知道COUNT(Feature_ID)AS FeatureCount的用途嗎?因爲它沒有連接下面的代碼。 – Raywin 2011-05-27 17:31:24
@Raywin - 使用FORM.Feature_ID =「1,2」'第一個查詢返回Hotel_ID 1.你可以發佈你的sql嗎? COUNT(Feature_ID)用於僅查找具有* all *所選特徵的記錄。 – Leigh 2011-05-27 17:39:35
Leigh,謝謝,如果剛剛按照你的第一個代碼,我可以得到答案,當我嘗試只添加餐廳r,然後我無法得到任何答案。 (Feature_ID)= 2)ck ON ck.Restaurant_ID = r.Restaurant_I – Raywin 2011-05-27 17:48:01