gpt4 book ai didi

MySQL获取尚未使用的优惠券

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

我有 3 个 MySQL 表,其中保存有关用户、优惠券信息以及用户是否使用优惠券的信息。像这样的事情:
用户表

+----------+-------------+
| User_ID | Name |
+----------+-------------+
| 1 | Sarah J |
| 2 | John Smith |
| 3 | Osman Lee |
+----------+-------------+

优惠券表

+----------+-------------+
| Coupon_ID| Title |
+----------+-------------+
| 1 | Free Stuff |
| 2 | 50% Off |
| 3 | $5 off $25 |
+----------+-------------+

和兑换表

+----------+---------+----------+
| Coupon_ID| User_ID | Redeemed |
+----------+---------+----------+
| 1 | 1 | yes |
| 2 | 2 | yes |
| 1 | 2 | yes |
+----------+---------+----------+

基本上我希望每个用户都有这个输出:
Sarah J:优惠券 2 和 3
约翰·史密斯:优惠券 3
Osman Lee:优惠券 1、2 和 3

我尝试使用连接,但到目前为止还没有成功。有什么建议么? [献给莎拉]

SELECT Coupons.coupon_id, Coupons.title
FROM Coupons
LEFT JOIN Redeemed ON Redeemed.coupon_id != Coupons.coupon_id
WHERE Users.user_id = '1'

最佳答案

这个想法是生成所有行,然后删除存在的行 - 交叉连接左连接:

select u.user_id, c.coupon_id as not_used_coupon_id
from coupons c cross join
users u left join
redeemed r
on r.coupon_id = c.coupon_id an dr.user_id = u.user_id
where r.coupon_id is null;

您可以在users表上添加where子句。

关于MySQL获取尚未使用的优惠券,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42662794/

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