gpt4 book ai didi

MySQL SELECT 用户未购买产品

转载 作者:行者123 更新时间:2023-11-29 15:44:18 24 4
gpt4 key购买 nike

如何找到在特定日期之前没有购买产品的用户?我有三张 table :

用户ID、姓名、电子邮件

产品ID、名称、描述

交易id、id_user、id_product、日期

例如,我想知道用户在过去 3 个月内没有购买 id 为 1,3,4 的产品。

我尝试过这些:

SELECT u.* FROM users u LEFT JOIN transactions t ON u.id = t.id_user 
WHERE t.id_product != 1 AND t.id_product != 3 AND t.id_product != 4
AND t.date >= "2019-04-01";

SELECT u.* FROM users u LEFT JOIN transactions t ON u.id = t.id_user
WHERE t.id_product NOT IN(1,3,4) AND t.date >= "2019-04-01";

最佳答案

如果您在 ON 子句中设置条件并仅从表 transactions 中选择不匹配的行,LEFT JOIN 将起作用:

SELECT u.* 
FROM users u LEFT JOIN transactions t
ON u.id = t.id_user AND t.date >= '2019-04-01' AND t.id_product IN (1, 3, 4)
WHERE t.id_user IS NULL

也不存在作品:

SELECT u.* FROM users u 
WHERE NOT EXISTS (
SELECT 1 FROM transactions t
WHERE u.id = t.id_user AND t.date >= '2019-04-01' AND t.id_product IN (1, 3, 4)
)

关于MySQL SELECT 用户未购买产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57245678/

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