代码之家  ›  专栏  ›  技术社区  ›  Joril

通过具有可空字段的连接表联接

sql
  •  1
  • Joril  · 技术社区  · 15 年前

    一个“普通的SQL问题”:)我有两个表,第三个表充当“半连接表”,这意味着有时两个外键中只有一个。有没有办法加入他们?

    例如,给定以下数据:

    表D ID:1、2、3、4、5
    表C ID:1、2、3
    表连接(D.ID,C.ID):(1,1)(2,空)(3,空)(4,2)(5,3)

    是否有方法检索以下内容?
    ([行ID 1的d个字段],[行ID 1的c个字段])
    ([行ID 2的d个字段],[空c个字段])
    ([行ID 3的d个字段],[空c个字段])
    ([行ID 4的d个字段],[行ID 2的c个字段])
    ([行ID 5的d个字段],[行ID 3的c个字段])

    如果相关的话,我使用的是PostgreSQL。
    谢谢你的时间!

    1 回复  |  直到 6 年前
        1
  •  3
  •   Quassnoi    15 年前
    SELECT  d.*, c.*
    FROM    d
    JOIN    junction j
    ON      j.d_id = d.id
    LEFT JOIN
            с
    ON      c.id = j.c_id