IF ELSE
当列值与指定文本匹配时,我想使用 Sql Query 中的语句连接多个表。
假设我已经检查了coloumnName='Value'
然后我想加入一个额外的表;否则,我不想加入它。这可能吗?我怎样才能做到这一点?
IF ELSE
当列值与指定文本匹配时,我想使用 Sql Query 中的语句连接多个表。
假设我已经检查了coloumnName='Value'
然后我想加入一个额外的表;否则,我不想加入它。这可能吗?我怎样才能做到这一点?
您不能有条件地连接表您需要使用外连接无条件地连接所有表,使用连接条件中的条件,并从返回的数据集中选择您想要的值,如下所示:
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
列决定引用哪个表。
结果将包含 3 列name
,其中最多有 1 列不为空。