当列值与指定文本匹配时,我想在Sql Query中使用IF ELSE
语句连接多个表。
假设我已经检查过coloumnName='Value'
然后我想加入一个额外的表;否则,我不想加入它。这可能吗?我怎么能这样做?
答案 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
的三列,其中至多一列将为非空。