需要关于以下SQL查询的帮助。我有一个客户列表,每个人的进度存储在验证表中。我需要在游标中使用以下语句,并使用record_id
来获取该确切日期,但它将仅返回客户端和现有值的小时数。已使用LEFT JOIN
,LEFT OUTER JOIN
。没有WHERE子句可以很好地工作,但我会获取混合结果,但不会有帮助。
SELECT
CLI.id client_id
,CLI.name client_name
,VLD.number_of_hours number_of_hours
FROM
client CLI
LEFT JOIN
validation VLD
ON
CLI.id = VLD.client_id
WHERE
VLD.record_id = 392;
提前致谢。
答案 0 :(得分:1)
将右侧表格条件从WHERE
移至ON
以获得真正的LEFT JOIN
结果。
SELECT
CLI.id client_id
,CLI.name client_name
,VLD.number_of_hours number_of_hours
FROM
client CLI
LEFT JOIN
validation VLD
ON
CLI.id = VLD.client_id
AND
VLD.record_id = 392;
(在WHERE中,左连接返回常规内连接结果。)