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

Bel*_*dar 2 sql sqlite

我正在做left outer join超过6个表,但我不希望查询保留重复的列.在SQLite中,重复列使用下划线重命名并添加到视图中.

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

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
Run Code Online (Sandbox Code Playgroud)

a_h*_*ame 7

由于您的连接列具有相同的名称,您可以使用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)
Run Code Online (Sandbox Code Playgroud)

在SQLite 3.8中测试过,不知道在早期版本中这是否有效.但SQL标准需要此行为.

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