【发布时间】:2017-01-21 12:12:34
【问题描述】:
表格:
客户
CID Name
1 A
2 B
3 C
4 D
5 E
6..(And so on)
参观
VID CID type
1 1 Med
2 3 Non
3 2 Non
4 6 Med
5 4 Med
6..(And so on)
付款
PID CID amount
1 1 10
2 1 20
3 2 30
4 2 40
5 3 50
6..(And so on)
期望的输出:
CID Name type amount
1 A Med 10
1 A Med 20
4 D Med NULL
(And so on..)
查询:
SELECT DISTINCT
C.client_id
,C.name
,V.type
,P.payment
FROM Clients C
INNER JOIN Visit V
ON C.cid=V.cid
LEFT JOIN Payment P
ON V.cid=P.cid
我使用 LEFT JOIN 是因为我想看看谁付款,谁没有付款。
问题: LEFT JOINS(或外连接)是否根据前面的 INNER JOINS(公共结果集)产生的左表的 CID 中的公共 id 拉入数据?或者他们是否考虑了左表中的所有 id 而完全忽略了 INNER JOINS 结果? 我只想要存在于内部联接而不是外部联接中的客户的付款详细信息。
【问题讨论】:
标签: sql sql-server join sql-server-2012