我有两张桌子
表1:
ID data status
1 data1 1
2 data2 1
3 data3 0
4 data4 1
表2:
ID lastLoginDate specialID
1 2018-09-10 abc
2 2018-03-16 xyz
3 2018-02-20 foo
4 2018-06-18 bar
两个表之间的公共数据是ID列。
我想在表2中找到一个特定值的列表,但我还想包括只包含表1中状态为1且表2中的lastLoginDate小于“2018-03-17”的数据的结果
以下是我迄今为止尝试使用的代码,但它不起作用:
SELECT Table1.data, Table2.ID, Table2.specialID
FROM Table1, Table2
WHERE Table2.SpecialID IN ('acb, foo') OR Table2.ID IN
(SELECT Table2.ID
FROM Table1, Table2
WHERE Table1.ID = Table2.ID
AND Table1.status = '1'
AND Table2.lastLoginDate < '2018-03-17'
)";
预期结果:
data ID specialID
data1 1 abc
data2 2 xyz
结果不应包括ID“3”,因为表1中的状态为“0”,即使specialID包含在“in”列表中。
同样,有两个总体条件
2需要在lastLoginDate中(如果在“IN”列表中显示,则应覆盖此条件,但仅当状态为“1”时)
我不确定是否需要将其分为两个查询才能正常工作。希望有人能帮我解决这个问题。