【问题标题】:Condition between two join in SQLSQL中两个连接之间的条件
【发布时间】:2014-06-17 21:51:21
【问题描述】:

我有 3 张桌子,我想加入其中的两张桌子。

例如,如果我有表 A、表 B 和表 C,我想要 JOIN AB 或 JOIN BC。

这样的东西存在吗?

SELECT * 
FROM B
(JOIN A
ON (B.b=A.id_a) 
OR (B.b=A.id_b))
OR
(JOIN C
ON (B.b=C.id_a)
OR (B.b=C.id_b))
WHERE B.a=1001485422 

【问题讨论】:

  • 在什么情况下加入A和加入C?

标签: sql postgresql join conditional-statements


【解决方案1】:

你可以同时做两个连接

select *
from
    b
    left join
    a on b.b in (a.id_a, a.id_b)
    left join
    c on b.b in (c.id_a, c.id_b)
where b.a = 1001485422

【讨论】:

  • 对不起,但这里似乎两个加入都将被应用,我只想要其中一个.. :/
  • @user3750255 其中哪一个?什么条件?
  • 我只想执行一个 JOIN 并忽略错误的一个。比如“SELECT * FROM a (join b on ...)OR(join c on ...) WHERE ....
  • @user3750255 哪个是假的?考试内容是什么?
猜你喜欢
  • 2023-03-24
  • 2021-10-26
  • 2012-04-25
  • 1970-01-01
  • 1970-01-01
  • 2021-08-18
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
相关资源
最近更新 更多