在where条件为-MySQL的联接表中按最近的日期排序
-你好! 我有两张桌子: -- 我真的需要在同一个查询中使用它,因为我想对事件使用分页。 这就是我无法在使用php查询后对数据进行排序的原因 由于WHERE在where条件为-MySQL的联接表中按最近的日期排序,mysql,sql,date,join,left-join,Mysql,Sql,Date,Join,Left Join,-你好! 我有两张桌子: -- 我真的需要在同一个查询中使用它,因为我想对事件使用分页。 这就是我无法在使用php查询后对数据进行排序的原因 由于WHEREbookable将事件1从查询中排除,因此我无法使用简单的左连接完成此操作 我也尝试过使用子查询,但无法获得每个事件的下一个日期 -- 是否有人有我可以测试的想法或查询,以获得期望的结果 感谢所有的帮助 谢谢大家! SELECT e.title, d.date FROM events e LEFT JOIN ( SELECT
bookable
将事件1从查询中排除,因此我无法使用简单的左连接完成此操作
我也尝试过使用子查询,但无法获得每个事件的下一个日期
--
是否有人有我可以测试的想法或查询,以获得期望的结果
感谢所有的帮助
谢谢大家!
SELECT e.title, d.date
FROM events e
LEFT JOIN (
SELECT event_id, MIN(date) AS date
FROM eventdates
WHERE date >= DATE(NOW()) AND bookable = 1
GROUP BY event_id
) d ON d.event_id = e.id
ORDER BY d.date
或不带子查询:
SELECT e.title, MIN(d.date) AS date
FROM events e
LEFT JOIN eventdates d
ON d.event_id = e.id
AND d.date >= DATE(NOW())
AND d.bookable = 1
GROUP BY e.id, e.title
ORDER BY date
粘贴您的查询,我们将从那里开始。是的,请粘贴您的查询。我将执行第二个查询,您只需告诉我,可以向联接添加多个条件。非常感谢@Rimas!
SELECT e.title, d.date
FROM events e
LEFT JOIN (
SELECT event_id, MIN(date) AS date
FROM eventdates
WHERE date >= DATE(NOW()) AND bookable = 1
GROUP BY event_id
) d ON d.event_id = e.id
ORDER BY d.date
SELECT e.title, MIN(d.date) AS date
FROM events e
LEFT JOIN eventdates d
ON d.event_id = e.id
AND d.date >= DATE(NOW())
AND d.bookable = 1
GROUP BY e.id, e.title
ORDER BY date