gpt4 book ai didi

mysql - 给我这个连接或那个连接(MySQL)

转载 作者:行者123 更新时间:2023-11-29 14:43:02 25 4
gpt4 key购买 nike

SELECT COUNT(*) as snitch_count 
FROM snitchings
JOIN pimps ON pimps.pimp_id=snitchings.pimp_id
JOIN prostitutes ON prostitutes.prostitute_id=snitchings.prostitute_id
WHERE snitchings.case_id=4538;

这就是我所拥有的,它可以运行,但似乎不正确(表存在,但还没有测试/虚拟数据,所以我无法完全知道)。我相信上面的查询将返回针对给定案例(它们是巨大的案例)的皮条客和妓女的告密总数。但我需要查询返回皮条客或妓女的告密总数。如何修复该查询来执行此操作?

免责声明:连续几个小时的编码可能让我精疲力尽,如果我的语法或解释有点奇怪,请原谅

最佳答案

不,您的查询将在告密中找到具有有效 pimp_id 和有效 prostitute_id 的线路。

您确定需要加入吗?表 snitchings 中的 prostitute_idpimp_id 是否可以包含无效值?否则,这会起作用:

SELECT COUNT(*) as snitch_count 
FROM snitchings
WHERE snitches.prostitute_id IS NOT NULL OR snitches.pimp_id IS NOT NULL

如果您确实需要加入,并且两者都是排他性的(告密者是妓女或皮条客),那么这应该可行:

SELECT COUNT(*) as snitch_count 
FROM snitchings
LEFT JOIN pimps ON pimps.pimp_id=snitches.pimp_id
LEFT JOIN prostitutes ON prostitutes.prostitute_id=snitches.prostitute_id
WHERE snitchings.case_id=4538 AND
(pimps.pimp_id IS NOT NULL OR prostitutes.prostitute_id IS NOT NULL)

否则,您需要单独计算它们(但如果您确实愿意,可以使用 UNION 和 SUM :

SELECT COUNT(*) as snitch_count 
FROM snitchings
JOIN pimps ON pimps.pimp_id=snitches.pimp_id
WHERE snitchings.case_id=4538;

SELECT COUNT(*) as snitch_count
FROM snitchings
JOIN prostitutes ON prostitutes.prostitute_id=snitches.prostitute_id
WHERE snitchings.case_id=4538;

关于mysql - 给我这个连接或那个连接(MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7593806/

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