我正在试着自学并更好地了解除了UNION之外的替代方法,并发现在什么情况下可以使用JOIN。
在尝试过程中,如果没有UNION似乎无法得到我想要的结果。是否可能用单个查询语句来编写它?
SELECT DISTINCT a.id
FROM table1 a, table2 b
WHERE a.id = b.id
AND a.ind IS NULL
AND b.year >= '2017'
AND b.code IN ('01','02','03')
AND b.flag NOT IN ('F','L')
UNION
SELECT DISTINCT a.id
FROM table1 a, table3 c
WHERE a.id = c.id
AND a.ind IS NULL
AND c.area = 'MAIN'
AND SYSDATE >= c.start
非常感谢您提供的任何指导或帮助。
WHERE
逻辑可能会变得非常丑陋(如果你不知道这是什么意思,它的意思是超出了丑陋的范畴)。 - Tim BiegeleisenDISTINCT
,因为UNION
会自动去除重复项。 - Magnus