sql查询的问题
我正在使用MySQL,并尝试构造一个查询来执行以下操作: 我有:sql查询的问题,sql,mysql,Sql,Mysql,我正在使用MySQL,并尝试构造一个查询来执行以下操作: 我有: Table1 [ID,...] Table2 [ID, tID, start_date, end_date,...] 我想从我的查询中得到的是: Select all entires from Table2 Where Table1.ID=Table2.tID **where at least one** end_date<today. 我现在的工作方式是,如果表2包含例如5个条目,但其中只有1个是end_date
Table1 [ID,...]
Table2 [ID, tID, start_date, end_date,...]
我想从我的查询中得到的是:
Select all entires from Table2 Where Table1.ID=Table2.tID
**where at least one** end_date<today.
我现在的工作方式是,如果表2包含例如5个条目,但其中只有1个是end_dateSELECT * FROM Table2
WHERE tID IN
(SELECT Table2.tID FROM Table1
INNER JOIN Table2 ON Table1.ID = Table2.tID
WHERE Table2.end_date < NOW
)
子查询将选择与where子句匹配的所有tId。主查询将使用此子查询筛选表2中的条目
注意:使用内部联接将筛选表1中的所有行,表2中没有匹配的条目。这是没有问题的;这些条目无论如何都不会与where子句匹配。也许,只是也许,您可以创建一个子查询来连接实际的表,在这个子查询中,您可以使用一个计数,稍后可以在where子句中使用