表:
客户端
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结果? 我只想要内部联接中存在的客户端的付款细节,而不是在其外部。