如何在MySQL中选择两个单独的非重叠表

Ste*_*hen 1 mysql join

我正在寻找一个查询来从两个不同的表中选择行,保持列名相同(我在这里找到了一个结果,用于从两个不同的表中进行选择,但它合并了列名以便更容易查询).我需要保留原始列名,但在新的较大表中存在两个不同的表.两个表之间没有重叠的列.

图片,可视化:

替代文字

那么,我该怎么做呢?我知道这个查询可能会非常复杂,但任何不太合适的东西都可能比我目前的尝试更好:

SELECT t1.* , t2.*
FROM table1 t1 RIGHT OUTER JOIN table2 t2
ON r.someColumn1 = rc.someColumn2
UNION
SELECT t1.* , t2.*
FROM table1 t1 LEFT OUTER JOIN table2 t2
ON r.someColumn1 = rc.someColumn2
Run Code Online (Sandbox Code Playgroud)

这确实有效,但只要没有someColumn1 = someColumn2的情况 - 当然这很容易发生.

任何帮助都表示赞赏,我为一个非常愚蠢的问题道歉,聪明的回答是"不要做,你这个傻瓜!".

Ada*_*uth 6

您可以将联接条件设置为永不匹配:

SELECT t1.* , t2.*
FROM table1 t1 RIGHT OUTER JOIN table2 t2
ON 1 = 0
UNION
SELECT t1.* , t2.*
FROM table1 t1 LEFT OUTER JOIN table2 t2
ON 1 = 0
Run Code Online (Sandbox Code Playgroud)

我没有MySQL来测试,但它适用于SQL Server.