我用PHP動態生成下面的SQL語句時遇到與它的返回記錄的問題。位於中間的「IN」語句帶有大逗號分隔值列表,爲特定的島ID返回6條記錄。然而,運行整個語句時產生的最終結果爲我提供了上面提到的同一個島ID的22條記錄......任何幫助都是值得讚賞的。如果需要,我可以提供更多信息。SQL「在」語句,返回6條......整個SQL語句返回22條記錄
SELECT islandID AS parentIslandID, islandName, island.longDesc,
imageLocation, COUNT(resortID) AS totalResorts, resort.resortID
FROM island, images, resort
WHERE parentIslandID = island.islandID
&& parentObjectID = island.islandID
&& imageType = 1
&& island.islandID IN (
SELECT parentIslandID FROM resort WHERE resortID IN (
59,62,65,69,71,72,74,75,76,82,86,89,91,93,95,105,
106,116,117,118,120,121,122,123,124,125,126,127,
131,145,146,150,157,159,160,167,170,174,176,185,188,189,193,
194,198,199,200,203,205,213,217
)
)
&& (search_Inclusive = '-1' || search_Inclusive = '0')
&& (search_onBeach = '-1' || search_onBeach = '0')
&& (search_wedCoord = '-1' || search_wedCoord = '0')
&& (search_roomRate >= '0' && search_roomRate <= '1000')
&& (search_HotelSuite = '-1' || search_VillaCondo = '-1')
&& (passportReq = '-1' || passportReq = '0')
&& (wideAccept = '-1' || wideAccept = '0')
&& (daysSearchable <= '3')
&& (search_airportDist <= '6')
&& resort.active = '-1'
GROUP BY resort.parentIslandID
ORDER BY totalResorts DESC
新想法:我在做與另一個表「IN」操作非常相同的事情。唯一的區別是表格中包含我在「IN」語句中使用的islandID。所以我打算在DBMS中創建一個視圖來合併兩個表以獲取我的islandID並以此方式處理它。對此有何想法?
不應該「AND」運算符是「AND」,而不是「&&」?這是什麼DBMS? – Phil
@Phil DBMS是運行mySQL版本5.0.91的phpMYAdmin。我按照你的建議做了,並把所有「&&」操作符改爲「AND」。結果完全一樣。任何其他想法? – MingMing
我猜MySQL允許運營商 – Phil