gpt4 book ai didi

mysql - 在mysql select中格式化左连接(不显示左表中的所有记录)

转载 作者:行者123 更新时间:2023-11-29 23:43:37 24 4
gpt4 key购买 nike

我有以下sql

SELECT *
FROM (SELECT sample_register.usin,
Date_format(sample_register.doc, '%d-%m-%Y') AS doc1,
sample_register.location,
sample_register.description,
gamma_results.act,
gamma_results.act_sd,
gamma_results.mdl,
gamma_results.bdl
FROM sample_register
LEFT JOIN gamma_results
ON gamma_results.usin = sample_register.usin
WHERE Mid(sample_register.usin, 3, 1) = 'F'
AND sample_register.doc BETWEEN'2014-09-01' AND '2014-09-26'
AND sample_register.type <> 'WATER'
AND gamma_results.istp = 'Cs137'
ORDER BY Mid(sample_register.usin, 3, 1),
sample_register.doc,
sample_register.usin) AS a
LEFT JOIN (SELECT sample_register.usin,
gamma_results.act,
gamma_results.act_sd,
gamma_results.mdl,
gamma_results.bdl
FROM sample_register
LEFT JOIN gamma_results
ON gamma_results.usin = sample_register.usin
WHERE Mid(sample_register.usin, 3, 1) = 'F'
AND sample_register.doc BETWEEN
'2014-09-01' AND '2014-09-26'
AND ( sample_register.type <> 'WATER' )
AND gamma_results.istp = 'k40'
ORDER BY Mid(sample_register.usin, 3, 1),
sample_register.doc,
sample_register.usin) AS b
ON a.usin = b.usi

它只给了我 2 行。 Sample_register 中有 30 条记录满足 where 子句,gamma_results 中有 4 条记录对应 2 个 USIN。我希望将sample_register 中的所有30 条记录与gamma_results 连接起来,其中数据仅适用于2 个USIN。 Sample_register中剩余28条记录,返回的字段值可以为空。我发现如果我删除条件 gamma_results_istp,则会显示所有 30 条记录。但我不想要这个。如有任何建议,请。

最佳答案

不确定,但可能您必须将条件 gamma_results_istp 从Where运算符转移到ON运算符;否则它会在执行 Left Join 之后应用,而不是之前:

... On (gamma_results.usin = sample_register.usin and gamma_results.istp='Cs137')

对第二个 gamma_results.istp 条件重复相同的操作。

此外,简化您的示例以便仅向我们展示相关内容不会伤害任何人。

关于mysql - 在mysql select中格式化左连接(不显示左表中的所有记录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26054252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com