仅当列为NULL时才加入

Jor*_*lam 1 sql postgresql join

我有两张表如下:

tag 表(仅英文标签):

ID    title
-------------
1     tag_1
2     tag_2
3     tag_3
Run Code Online (Sandbox Code Playgroud)

tag_translation 表:

ID    title      locale   tag_id (foreign key)
-----------------------------------------------
1     tag_1_fr   FR        1
2     tag_1_de   DE        1
3     tag_2_es   ES        3
Run Code Online (Sandbox Code Playgroud)

如何用法语返回所有标签的SQL查询,如果在法语中没有找到标签,则回退到英语?

结果示例(选择法语中的所有标签,后退到英语):

ID    title
---------------
1     tag_1_fr
2     tag_2
3     tag_3
Run Code Online (Sandbox Code Playgroud)

Cad*_*oux 6

SELECT T.ID
       ,COALESCE(TT.TITLE, T.TITLE) AS TITLE
FROM tag T
LEFT JOIN tag_translation TT
    ON T.ID = TT.tag_id
    AND TT.locale = 'FR';
Run Code Online (Sandbox Code Playgroud)

这假设tag_id和locale在tag_translation中是唯一的.