帮助简单的SQL查询

jag*_*mot 2 sql

表A.

Id    Name  
1     Apple
2     Mango
Run Code Online (Sandbox Code Playgroud)

表B.

Id  Locale      Name_In_Lang
1   es-ES       Apple[Spanish]
1   it-IT       Apple[Italian]
2   it-IT       Mango[Italian]
Run Code Online (Sandbox Code Playgroud)

加入表格并获得以下输出:

Id  Locale      Name_In_Lang        Name
1                                   Apple
1   es-ES       Apple[Spanish]      Apple
1   it-IT       Apple[Italian]      Apple
2                                   Mango
2   it-IT       Mango[Italian]      Mango
Run Code Online (Sandbox Code Playgroud)

我有以下查询......

Select a.id, b.locale, b.name_in_lang, a.name 
from TableA a
Left Outer Join TableB b on ( a.id = b.id)
Run Code Online (Sandbox Code Playgroud)

......我只得到:

Id  Locale      Name_In_Lang        Name
1   es-ES       Apple[Spanish]      Apple
1   it-IT       Apple[Italian]      Apple
2   it-IT       Mango[Italian]      Mango
Run Code Online (Sandbox Code Playgroud)

有什么建议 ?

Dan*_*n J 5

您可以将实际结果与所需的额外行结合起来,如下所示:

SELECT a.id, b.locale, b.name_in_lang, a.name
FROM TableA a
LEFT OUTER JOIN TableB b ON a.id = b.id
UNION
SELECT a.id, '' AS locale, '' AS name_in_lang, a.name
FROM Table a
Run Code Online (Sandbox Code Playgroud)

UNION中的第二个查询将在表A中为每个记录提供一行,其中包含空的区域设置和已翻译的名称.