我正在使用Sqlite3数据库,我有3个表,我想加入。我的程序基本上都有文件。您可以选择属于该文档的多个员工。但员工也可以属于其他文件。
以下是我的表格:
表员工:
表格文件:
表DocEmp:
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没有员工,我只需要所有员工。
答案 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;