java - SQLite JDBC中无需重复列即可实现全外连接效果

标签 java sql sqlite jdbc

它可能已经得到解答,但我找不到我要找的东西。这是一个新问题。

我正在尝试使用以下语法在 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/

相关文章:

c++ - 如何在 SQLite 中列出临时表/ View ?

java - 我在这个例子中是否违反了LSP原则?

java - 当bean类的字段结构周期性变化时,如何反序列化同一个bean类的不同版本?

java - bean 的 @Configuration 命名规则是什么?

java - 如何在primeng p-fileupload组件中过滤文件类型

php - 在php中打印递归列表

sqlite - 如何在phonegap应用程序中存储翻译并保存用户首选项?

c# - SQL Server 和 C# 中每条记录的字符串处理

mysql - 相关视频 数据库表结构

iOS:根据以前的条目过滤 SQLite 查询/检查条目