-3

我有三张表,如A、B、C,这就是我的要求

  • 在具有来自 B 和 C 表的两个外键的A 表中
  • 我想如果 b_id 不为空然后从B 表中获取数据
  • 否则,如果 c_id 不为空,则从C 表中获取数据。

B 和 C 表具有三到四列。请看下面的结构。

A Table
a_id(pk) |  b_id(fk) | C_id(fk)

1        |    null   |         1
2        |       2   |      null

对于上述要求,我尝试了但没有实现我的目标。请任何人这样做。

提前致谢

4

2 回答 2

0

可能您的意思是left joins在表 B 和 C 上具有COALESCE一些值(或值?您没有提供任何列列表或您想要的输出是什么,所以我假设表 B 和 C 中只有一个包含列的内容)

为了从这些表中的一列中进行选择,我将执行以下操作

SELECT
        COALESCE(B.yourcontentcolumn, C.yourcontentcolumn, <defaultvalueifnull>)
    FROM A
    LEFT JOIN B ON B.id = A.b_id
    LEFT JOIN C ON C.id = A.c_id
于 2013-09-24T10:07:52.033 回答
0

如果我正确理解您的问题,您想对表 B 和 C 进行左连接

Select B.*, C.*
From table_A A left join Table_B B on A.B_Id=B.Id
left join Table_C C on A.C_Id = C.Id
于 2013-09-24T09:44:49.043 回答