如何加入我的桌子?

时间:2015-08-18 14:28:15

标签: sql database sqlite join select-query

我正在使用Sqlite3数据库,我有3个表,我想加入。我的程序基本上都有文件。您可以选择属于该文档的多个员工。但员工也可以属于其他文件。

以下是我的表格:

表员工:

  • id:整数主键

表格文件:

  • id:整数主键

表DocEmp:

  • id:整数主键
  • docId:Integer
  • EMPID:整数
  • 状态:整数

DocEmp表可以为空,只有Employee和Document表始终填充。 最重要的是我总是希望加载所有员工!

例如: 我有3名员工,ID为1,2和3.有2个ID为1和2的文件。 DocEmp有以下记录: 第1行:1,1,1,0 第2行:2,1,2,1 所以这意味着只有文档1有2名员工,ID为1和2.因此,当我在文档1中时,我想加载所有3名员工,并且还想知道为该文档填写的2名员工的状态。 DocEmp表。而且由于文件2没有员工,我只需要所有员工。

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,我认为您可能正在寻找left join

select e.id as employeeid,
       d.id as documentid,
       de.state as state     
from employee e
--this could be an inner join but your example is confusing
left join document d on e.id = d.id 
left join docemp de on e.id = de.empid 
                   and d.id = de.docid;