我在两张 table 之间有联合手术
SELECT ID_1,
name_1,
surname_1,
FROM T_ONE
UNION
SELECT ID_2,
name_2,
surname_2
FROM TABLE_2
我想将此
UNION
操作的结果与另一个表甚至所有TABLE_1
一起加入。如何处理
UNION
的新表结果。例如在上一个
UNION
之后:RIGHT JOIN TABLE_3
ON TABLE_3.ID_3 = XXXXXXXXXXXXXXXXXXXX.ID_2
我真的不知道需要什么来代替XXXXXXXXXXXXXXXX来处理由
UNION
生成的新表。 最佳答案
在此使用派生表,例如“foo”,然后再次联接,但是您希望:
SELECT
*
FROM
TABLE_3
LEFT JOIN
(
SELECT ID_1, name_1, surname_1, FROM T_ONE
UNION --ALL would be more efficient if results do not overlap, as van's comment said
SELECT ID_2, name_2, surname_2 FROM TABLE_2
) foo ON TABLE_3.ID_3 = foo.ID_1
PS。使用LEFT联接:比RIGHT联接少困惑。
关于SQL:级联UNION和JOIN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1418431/