Я пытаюсь сформулировать кажущийся простой SQL-запрос, в котором я соединяю две таблицы и заказываю результаты по разнице дат от одного из столбцов и NOW()
.SQL - заказ по возрастающей дате от NOW()
Я пытаюсь запрос:
SELECT advertise_id,
qr_startdate,
qr_enddate,
DATEDIFF(day, NOW(), t1.qr_enddate) AS d
FROM `adv_qr` t1
INNER JOIN advertise_table t2
ON t1.advertise_id = t2.lid
ORDER BY t1.d ASC
который, кажется, что это должно быть хорошо, но явно что-то в синтаксисе неверен. Я пробовал различные комбинации вещей, но не могу заставить DATEDIFF
вернуться так, чтобы я мог заказать результаты с ним.
Попробуйте включить столбец «день» в списке и присвоить ему псевдоним. День - это ключевое слово и может быть проблемой. Редактирование: Да, я думаю, что это должно быть датированное (сейчас(), в другой день) –
Так как 'd' является псевдонимом, нужно ли ему иметь перед ним t1? Он не входит в таблицу t1 ... – Tommy
@ Томми: Вы правы. Я удалил t1 в ORDER BY и SQL выполнил, когда я также использовал предложение @ Alden об использовании 'lateiff (now(), otherday)' Однако мой столбец 'd' равен' NULL'. И, конечно, это делает «ORDER BY» нерелевантным. – Brett