Reputation: 1472
i have following table structure:
And i need to select every item from master, and language variant by lang, however, when reqiured lang is not defined, then select another one variant. So e.g. i want all de mutations, but for master ID 3 and 4 it's not defined, so it'll select the en variants. So how to achieve this, please?
Upvotes: 0
Views: 38
Reputation: 39487
You can do a double join and use COALESCE
to get value for en when de values are absent:
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'
Upvotes: 1