【问题标题】:How to write Tables in SQL with a Disjoint Connection如何在 SQL 中使用不相交的连接编写表
【发布时间】:2017-11-22 19:53:08
【问题描述】:

所以我有三个表,我想创建一个不相交的连接。这些是人,租户和雇员。 因此,每个人都必须是租户或雇员,绝不能两者兼而有之。 我使用 PersonID 主键创建了一个 Person 表,租户和 Employee 作为两个单独的表,其主键都是链接回 Person(PersonID) 的外键。 我如何在这里创建一个脱节,每个人只能是租户或雇员?谢谢

【问题讨论】:

标签: sql database relationship


【解决方案1】:

你可以试试这个,它会挑选出每个人,无论是个人还是员工:

SELECT *
FROM (SELECT person.*,
             CASE WHEN employee.id IS NULL THEN 0 ELSE 1 END AS is_employee,
             CASE WHEN tenant.id   IS NULL THEN 0 ELSE 1 END AS is_tenant
      FROM person LEFT JOIN employee on person.id = employee.id
                  LEFT JOIN tenant on person.id = tenant.id) AS tA
WHERE tA.is_employee <> tA.is_person 

确保所有 id 列都已编入索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    相关资源
    最近更新 更多