它可能已经得到解答,但我找不到我要找的东西。这是一个新问题。
我正在尝试使用以下语法在 SQLite JDBC 中创建完整外部联接。
我尝试过的 SQLite 查询:
SELECT table1.*, table2.*
FROM table1
LEFT JOIN table2
ON table1.ID = table2.ID
AND
table1.Name = table2.Name
UNION ALL
SELECT table1.*, table2.*
FROM table2
LEFT JOIN table1
ON table1.ID = table2.ID
AND
table1.Name = table2.Name
然后它会生成重复的列(正如 Full Outer Join 中所预期的那样)。然而,如果只获得这些重复列的一个实例,即没有重复列的联合,那就太好了。
更多说明:我需要的是从两个表中获取除重复重复列之外的所有列。
任何建议都会有很大帮助。
最佳答案
没有 SQL 语法可以选择除某些列之外的所有列
select * except id, name -- can't do this
您必须明确命名其中一个表的所有其他列:
SELECT table1.*, table2.col1, table2.col2, table2.col3 -- etc
FROM table1
LEFT JOIN table2
ON table1.ID = table2.ID
AND table1.Name = table2.Name
UNION ALL
SELECT table1.*, table2.col1, table2.col2, table2.col3 -- etc
FROM table2
LEFT JOIN table1
ON table1.ID = table2.ID
AND table1.Name = table2.Name
关于java - SQLite JDBC中无需重复列即可实现全外连接效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25550288/