从sql中的三个表中获取值

时间:2014-03-29 02:45:51

标签: sql

我有三张表,如下面

tbl_asset_reg

barcode   | emp_id         |port_id     |floor
----------|----------------|------------|------
 1        | emp1           | 0          |7th
 2        | 0              | 12         |20th
 3        | emp2           | 0          |5th

tbl_asset_Transfer

barcode   | emp_id         |port_id     |floor
----------|----------------|------------|------
 1        | emp3           | 0          |20th
 2        | 0              | 12         |20th
 4        | emp2           | 0          |5th

tbl_employee

emp_id    | emp_name        company       |department
----------|----------------|--------------|------
 emp1     | sa             | abc          |finance
 emp2     | ra             | cdf          |finance
 emp3     | rom            | abc          |it

我想从tbl_asset_Transfer得到所有条形码和详细信息左外连接tbl_asset_reg.my问题是当我通过左外连接得到结果如何从tbl_employee获取相应的emp_name和公司。请帮忙

1 个答案:

答案 0 :(得分:1)

假设某些资产没有分配员工(emp_ID = 0)

SELECT * 
from tbl_Asset_Transer tat
LEFT JOIN tbl_asset_Reg tar
 ON tat.barcode = tar.barcode
LEFT JOIN tblEmployee TE
 on (TE.Emp_ID = Tar.Emp_ID and TE.Emp_ID=tat.empID)
 OR (TE.Emp_ID = tat.emp_ID and tat.empID is null)

虽然看起来丑陋似乎可能更好地联合资产表然后加入,因为他们apear具有相同的结构只取决于你想要的输出。