MYSQL根据条件加入多个查询

时间:2010-01-11 14:21:49

标签: mysql

表x
X-ID
用户ID
STARTDATE
结束日期

表Y
Y型ID
用户ID
登录ID
STARTDATE
结束日期

在表x中,用户只有一个条目,但在表y中,同一个用户可以有多个条目。

从x-id中选择*,其中enddate BETWEEN DATE(CURDATE()) AND DATE_ADD(CURDATE(),INTERVAL 7 DAY)

在此查询中,如果表y中没有条目,我需要在接下来的7天内检查表x enddate。 但是如果在表y中存在一个条目,我需要检查表y中最新条目的结束日期而不是x 怎么做?

1 个答案:

答案 0 :(得分:1)

SELECT  x.*
FROM    x
LEFT JOIN
        y
ON      y.userid = x.userid
GROUP BY
        x.id
HAVING  COALESCE(MAX(y.enddate), x.enddate) BETWEEN CURDATE() AND CURDATE() + INTERVAL 7 DAY