edit: сообщение об ошибке: »Неизвестный столбец« date1 »в« where »«
причина этого в том, что оператор op псевдонимом является псевдонимом 'e.date1'. в своем предложении where он пишет e.date1 без каких-либо обратных галочек. e.date1 будет искать столбец date1 в таблице e и отличается от псевдонима e.date1 (с обратными галочками)
вы создаете псевдоним для подзапроса с именем "e.date1"
, а затем ссылаетесь на столбец "date1"
в таблице "e"
- которого не существует.
Вы должны либо ввести псевдоним "date1"
, а затем использовать WHERE date1
, либо написать где WHERE ``e.date1``
(испорчено уценкой ...
полный код:
SELECT
IF( e.weekly,
DATE_ADD(DATE(e.time),
INTERVAL CEIL(DATEDIFF('2010-04-08', e.time)/7) WEEK ),
DATE(e.time)) AS `e.date1`,
`v`.`lat`,
`v`.`lng`
FROM `events` AS `e`
INNER JOIN `venues` AS `v` ON e.venue_id = v.id
WHERE `e.date1` > '2010-09-01'
или
SELECT
IF( e.weekly,
DATE_ADD(DATE(e.time),
INTERVAL CEIL(DATEDIFF('2010-04-08', e.time)/7) WEEK ),
DATE(e.time)) AS e.date1,
`v`.`lat`,
`v`.`lng`
FROM `events` AS `e`
INNER JOIN `venues` AS `v` ON e.venue_id = v.id
WHERE e.date1 > '2010-09-01'