如何加入我的桌子?

How to join my tables?

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

下面是我的tables:

Table 员工:

Table 文件:

Table DocEmp:

DocEmp table 可以为空,只有 Employee 和 Document table 始终填充。 最重要的是我一直想加载所有员工!

例如: 我有 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 table。因为文档 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;