在where条件为-MySQL的联接表中按最近的日期排序

在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

-你好!

我有两张桌子: --

我真的需要在同一个查询中使用它,因为我想对事件使用分页。 这就是我无法在使用php查询后对数据进行排序的原因

由于WHERE
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