我需要有关如何最好地处理这种情况的帮助。
我有3张桌子,比如A,B,C。
表A的categoryID
列包含G(良好)或B(不良)。
如果A中的categoryID
为G,则有关该行的信息在表B中。
如果categoryID
是B,则有关该行的信息在C中。
例如,如果我在表A中有2条记录。
对于第一条记录,categoryID
是G。我需要从表B中获得第一条记录的数据。
对于第二条记录,categoryID
是B,我需要从表C中获取第二条记录的数据。
我正在使用MySQL过程。我试图用例,但似乎没有用。
我想通过一个过程来实现。表B和C具有表A中的外键引用列。
最佳答案
一种方法是两个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;
关于mysql - 根据列值组合来自不同表的mysql语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31374119/