我试了很多次,但都查询完了,请帮帮我,我有下表。
ID Name event transaction_number
--------------------------------------------------------
118 John paymentSend 001
118 John paymentFailed 002
118 John paymentInProcess 003
118 John notPaid 004
118 John paymentStucked 005
118 John paymentSuccess 006
我想知道";John";,支付了金额,我可以很容易地使用";paymentSuccess";,但我也想知道如果付款完成或失败,我有";paymentFailed";现有记录,所以我想问一下"paymentFailed"&"paymentSuccess";不存在,所以我需要查询同一列,类似
SELECT *
from users
where event = "paymentFailed"
AND event != "paymentSuccess"
如果付款失败,并且不存在成功,我想为所有用户请求1条记录,提前感谢。
1.-如果不存在成功,则显示失败
2.-如果两个条件都与不匹配,则显示为空
要查找所有没有支付失败和支付成功的用户,我们可以使用聚合:
SELECT ID, Name
FROM yourTable
GROUP BY ID, Name
HAVING SUM(event = 'paymentSuccess') = 0 AND SUM(event = 'paymentFailed') > 0;