我有两个表,我想在将这两个表连接在一起之前过滤这1个表
客户表:
╔══════════╦═══════╗
║ 顾客║ 状态║
╠══════════╬═══════╣
║ A.║ s║
║ B║ v║
║ C║ L║
╚══════════╩═══════╝
条目表:
╔══════════╦═══════╦══════════╗
║ 顾客║ 进入║ 类别║
╠══════════╬═══════╬══════════╣
║ A.║ 5575║ D║
║ A.║ 6532║ C║
║ A.║ 3215║ D║
║ A.║ 5645║ M║
║ B║ 3331║ A.║
║ B║ 4445║ D║
╚══════════╩═══════╩══════════╝
我想要左联接,因此我从Customer表中获取所有记录,而不管Entry表中是否有相关记录。但是,我想在加入之前在条目表中筛选类别D
预期结果:
╔══════════╦═══════╦═══════╗
║ 顾客║ 状态║ 进入║
╠══════════╬═══════╬═══════╣
║ A.║ s║ 5575║
║ A.║ s║ 3215║
║ B║ v║ 4445║
║ C║ L║ 无效的║
╚══════════╩═══════╩═══════╝
如果我要执行以下查询:
选择客户。客户,客户。状态,条目。条目
来自客户
左连接条目
ON Customer.Customer=Entry.Customer
WHERE Entry.Category='D'
这将过滤掉最后一条记录
因此,我需要左表中的所有行,并将其连接到在类别D上筛选的条目表
谢谢你的帮助
您需要将WHERE
过滤器移动到JOIN
条件:
选择c.客户、c.状态、e.条目
来自客户c
左连接条目e
关于c.Customer=e.Customer
和e.D'
请参阅SQL摆弄演示