使用IF ELSE语句连接多个表

时间:2012-09-12 13:37:43

标签: mysql

当列值与指定文本匹配时,我想在Sql Query中使用IF ELSE语句连接多个表。

假设我已经检查过coloumnName='Value'然后我想加入一个额外的表;否则,我不想加入它。这可能吗?我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您无法有条件地连接表您需要使用外连接无条件地连接所有表,使用连接条件中的条件,并从返回的数据集中选择所需的值,如下所示:

select r.id, p.name, a.name, t.name
from requests r
left outer join person p on r.type='person' and r.item_id = p.id
left outer join animal a on r.type='animal' and r.item_id = a.id
left outer join thing t on r.type='thing' and r.item_id = t.id

上面的示例显示了具有引用人,动物或事物的item_id的“请求”。 type列决定引用哪个表。

结果将有name的三列,其中至多一列将为非空。