SELECT t1.type_id, t1.name
FROM table1 t1
WHERE t1.data_id = ?
JOIN
определённой таблицы?CASE
, как я понял, не работает с выражениями :( SELECT t1.type_id, t1.name, coalesce(t01.id, t02.id) t0_id
FROM table1 t1
left join type1 t01 on (t1.type_id = t01.id and t1.type_id = type1)
left join type1 t02 on (t1.type_id = t02.id and t1.type_id = type2)
WHERE t1.data_id = ?