Я сгенерировал следующий оператор SQL динамически с PHP и у меня возникла проблема с записями, которые он возвращает.Оператор "IN", расположенный в середине с большим списком значений, разделенных запятыми, возвращает 6 записей для конкретного islandID.Тем не менее, окончательные результаты, которые генерируются при выполнении всего оператора, дают мне 22 записи для того же islandID, упомянутого выше ... любая помощь приветствуется.При необходимости я могу предоставить больше информации.
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" с другой таблицей.Единственное отличие состоит в том, что указанная таблица содержит islandID, который я использовал в своем операторе IN.Поэтому я планирую создать представление в СУБД для объединения двух таблиц, чтобы получить идентификатор IslandID и работать с ним таким образом.Есть мысли по этому поводу?