我需要有关如何最好地处理这种情况的帮助。
我有3张桌子,比如A,B,C。
表A的列categoryID
有G(好)或B(坏)。
categoryID
为G,则该行的信息位于表B中。categoryID
为B,则该行的信息位于C。例如,如果我在表A中有2条记录。
对于第一条记录,categoryID
是G.我需要从表B获取第一条记录的数据。
对于第二条记录,categoryID
为B,我需要从表C中获取第二条记录的数据。
我正在使用MySQL程序。我试过用案例,但似乎没有用。
我想在一个程序中实现这一目标。表B和C具有表A中的外键引用列。
答案 0 :(得分:0)
一种方法是两个left join
。你的问题在列名实际上有点模糊,但方法是这样的:
select a.*, coalesce(b.col1, c.col1) as col1, coalesce(b.col2, c.col2) as col2
from a left join
b
on a.categoryId = 'G' and a.bid = b.bid left join
c
on a.categoryid = 'B' and a.cid = c.cid;