【问题标题】:How to join my tables?如何加入我的桌子?
【发布时间】:2015-11-11 13:22:32
【问题描述】:

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

以下是我的表格:

表员工:

  • id:整数主键

表格文档:

  • id:整数主键

表格文档:

  • id:整数主键
  • docId:整数
  • 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 没有员工,所以我只需要所有员工。

【问题讨论】:

    标签: sql database sqlite join select-query


    【解决方案1】:

    如果我正确理解您的问题,我想您可能正在寻找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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多