У меня есть сайт, где собирается определенный набор данных. Это сайт туристического агентства. Необходимо определить, можно ли забронировать жилье. Когда я не выбираю поисковые фильтры (например, пункт назначения, классификация, объекты и т. Д.), Я получаю рабочий запрос. Выглядит как:
SELECT `accommodation` . *
FROM `accommodation`
INNER JOIN (
SELECT `fk_accommodation` , MAX( `dateuntil` ) - ( `releasedays` *60 *60 *24 ) AS `LatestBookableTimestamp`
FROM `priceperiod`
GROUP BY `fk_accommodation`
) AS `pp` ON ( `pp`.`fk_accommodation` = `accommodation`.`id` )
WHERE `pp`.`LatestBookableTimestamp` > UNIX_TIMESTAMP( )
AND `accommodation`.`fk_country` <>0
AND `accommodation`.`classification` >=0
AND `accommodation`.`type` = 'Z'
Но когда я выбираю фильтр (в данном случае это «целевой» фильтр (дети, активный, отдых, зимний спорт и т. Д.), Я получаю запрос:
SELECT `accommodation` . *
FROM `accommodation` , `link_at`
INNER JOIN (
SELECT `fk_accommodation` , MAX( `dateuntil` ) - ( `releasedays` *60 *60 *24 ) AS `LatestBookableTimestamp`
FROM `priceperiod`
GROUP BY `fk_accommodation`
) AS `pp` ON ( `pp`.`fk_accommodation` = `accommodation`.`id` )
WHERE `pp`.`LatestBookableTimestamp` > UNIX_TIMESTAMP( )
AND `accommodation`.`fk_country` <>0
AND `link_at`.`fk_target`
IN ( 10, 2 )
AND `link_at`.`fk_accommodation` = `accommodation`.`id`
AND `accommodation`.`classification` >=0
AND `accommodation`.`type` = 'Z'
Теперь, когда я выполняю этот запрос, я получаю ошибку: #1054 - Unknown column 'accommodation.id' in 'on clause'
. Я думаю, это потому, что в предложении FROM используется другая таблица. Кто-нибудь есть идеи о том, как использовать INNER JOIN при запросе нескольких таблиц?