左连接与 WHERE (Microsoft Access SQL)

0 join ms-access where

给定以下 2 个表 a、b:

表一

ID job
1  farmer
2  physician
3  bank clerk
Run Code Online (Sandbox Code Playgroud)

表b

bID ID lang job
1   1  en   farmer
2   2  en   physician
3   3  en   bank clerk
4   2  de   Arzt
5   1  fr   paysan
Run Code Online (Sandbox Code Playgroud)

询问

SELECT a.ID, a.job, b.job FROM a LEFT JOIN b ON a.ID=b.ID WHERE b.lang='de'
Run Code Online (Sandbox Code Playgroud)

通缉:

a.ID a.job        b.job
1    farmer       -
2    physician    Arzt
3    bank clerk   -
Run Code Online (Sandbox Code Playgroud)

实际结果:

2    physician    Arzt
Run Code Online (Sandbox Code Playgroud)

有什么问题LEFT JOIN?我需要一些 (()) 吗?

dbi*_*lid 7

在您的查询中,仅使用条件执行左连接a.ID=b.ID,然后根据条件过滤结果b.lang='de'。您需要在左连接上添加两个条件:

SELECT a.ID, a.job, b.job 
FROM a LEFT JOIN b 
ON (a.ID=b.ID and b.lang='de')
Run Code Online (Sandbox Code Playgroud)