我有以下表结构:
我需要通过lang选择master中的每个项目和语言变体,但是,当未定义reqiured lang时,则选择另一个变体。所以例如我想要所有 de 突变,但是对于主ID 3和4它没有定义,因此它将选择 en 变体。那么如何实现这一目标呢?
答案 0 :(得分:1)
您可以进行双联接,并在缺少de值时使用COALESCE
获取en的值:
select m.id,
m.name,
coalesce(vd.id, ve.id) v_id,
coalesce(vd.Lang, ve.Lang) Lang,
coalesce(vd.master_id, ve.master_id) master_id,
coalesce(vd.Variant_Name, ve.Variant_Name) Variant_Name
from Master m
left join Language_Variant vd on m.id = vd.master_id
and vd.Lang = 'de'
left join Language_Variant ve on m.id = ve.master_id
and ve.Lang = 'en'