SQLite - 删除左外连接中的重复列

标签 sql sqlite

我正在对 6 个表执行 左外部联接,但我不希望查询保留重复的列。在 SQLite 中,重复的列用下划线重命名并添加到 View 中。

是否可以在同一个查询中删除它们?

SELECT * FROM AQ_ADRESSES
LEFT OUTER JOIN AQ_CP_ADRESSES ON AQ_ADRESSES.IdAdr = AQ_CP_ADRESSES.IdAdr
LEFT OUTER JOIN AQ_ODONYMES ON AQ_ADRESSES.Seqodo = AQ_ODONYMES.Seqodo
LEFT OUTER JOIN AQ_REFERENTIEL ON AQ_ADRESSES.NoSqNoCivq = AQ_REFERENTIEL.NoSqNoCivq
LEFT OUTER JOIN AQ_MUNICIPALITES ON AQ_ADRESSES.CodeMun = AQ_MUNICIPALITES.CodeMun
LEFT OUTER JOIN AQ_ARRONDISSEMENTS ON AQ_ADRESSES.CodeArr = AQ_ARRONDISSEMENTS.CodeArr

最佳答案

由于您的连接列具有相同的名称,您可以使用 using 运算符来定义连接。在那种情况下,“重复”列将不会成为结果集的一部分

SELECT * 
FROM AQ_ADRESSES
  LEFT OUTER JOIN AQ_CP_ADRESSES using (IdAdr)
  LEFT OUTER JOIN AQ_ODONYMES using (Seqodo)
  LEFT OUTER JOIN AQ_REFERENTIEL  using (NoSqNoCivq)
  LEFT OUTER JOIN AQ_MUNICIPALITES using (CodeMun)
  LEFT OUTER JOIN AQ_ARRONDISSEMENTS using (CodeArr)

在 SQLite 3.8 中测试,不知道这在早期版本中是否相同。但这种行为是 SQL 标准所要求的。

但一般来说,select * 在生产中使用的代码中被认为是有害的。

关于SQLite - 删除左外连接中的重复列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23109915/

相关文章:

python - 在 Python 中将元组拆分为所需的格式

django - 在 Centos7 上将 SQLite3 与 Django 2.2 和 Python 3.6.7 结合使用

sql - SQLite SQL 中 Left 命令的替换

php登录数组问题

MYSQL - 如何将值分隔成列 - concat

c++ - Qt:保存 Qt-creator 应用程序的 SQLite 数据库的最佳 "Path"在哪里?

java - 设置 jdbc SQLite 数据库所在的路径

android - 如何在 android 中手动创建一个可以与 SQLite 一起使用的数据库文件?

sql - 添加简单约束 - 数据库

mysql - 是否可以在 mysql 中插入单词和变量的组合?