2015-06-24 48 views
0

下面是代码(模拟全外连接sqlite3的):选择列在联盟两个表与一个重叠列名sqlite的

SELECT EMP_ID, ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.EMP_ID 
union 
SELECT EMP_ID, ID, NAME, DEPT FROM department LEFT OUTER JOIN company ON COMPANY.ID = DEPARTMENT.EMP_ID 

公司表具有列:ID,姓名,年龄,地址, ,工资。 部门表具有列:id,dept,emp_id。

问题是两个表都有id列,但我只想从公司选择id列。我怎样才能做到这一点?

+0

在部门选择中用'null'替换'id'? –

回答

1

通过使用别名解决:

SELECT EMP_ID, c.id, NAME, DEPT FROM COMPANY as c LEFT OUTER JOIN DEPARTMENT as d ON c.ID = d.EMP_ID 
union 
SELECT EMP_ID, c.id, NAME, DEPT FROM department as d LEFT OUTER JOIN company as c ON c.ID = d.EMP_ID; 

这很好地说明了一个完整的外部连接的结果:

3 Teddy 
    4 Mark  
    5 David 
    6 Kim 
    7 James 
    8 Kitos 
    9 Paul  
    10 James 
    11 James 
    12 James 
    13 James 
    14 James 
    15 James 
    16 James 
    17 James 
1 1 Paul IT Billing 
2 2 Allen Engineering 
77    Finance 

空白单元为空。