gpt4 book ai didi

mysql - 自连接mysql复杂查询

转载 作者:行者123 更新时间:2023-11-29 08:06:14 26 4
gpt4 key购买 nike

我有一个名为 call_charges 的表,其中包含以下数据。 enter image description here

我需要获取所有未付款且重试付款也未付款的付款。

transaction_bid 不为空且 is_paid 0 的行将返回 id 6 和 10 的记录。但是 id 6 有付费重试(id 12,retry_id 6 和 is_paid 1),所以 row id 6 不应出现在结果中。

我尝试过:

SELECT `call_charges`.* FROM `call_charges` LEFT JOIN `call_charges` AS 
`retries_call_charges` ON `retries_call_charges`.`retry_id` = `call_charges`.`id`
WHERE `call_charges`.`is_paid` = 0 AND (`call_charges`.`transaction_bid` IS NOT NULL
AND `call_charges`.`retry_id` IS NULL)

但它返回 id 6 和 10 的行。

提前致谢。

最佳答案

给你:

SELECT c1.id
FROM call_charges c1
LEFT JOIN call_charges c2
ON c1.id = c2.retry_id AND c2.is_paid = 1
WHERE c1.transaction_bid IS NOT NULL
AND c1.is_paid = 0
AND c2.id IS NULL
AND c1.retry_id IS NULL

工作 fiddle : http://sqlfiddle.com/#!2/29549/13

c2.id 可能为 null,因为已使用 LEFT JOIN。当c1.idc2.retry_id不匹配时,c2.id将为NULL。

关于mysql - 自连接mysql复杂查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22684566/

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