gpt4 book ai didi

mysql - 连接两个不存在于另一个表中但在某些条件下存在的表

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

我有两张 table , table 上的元素和购物车。

表格项目

| id     | name |
|--------|------|
| item_1 | A |
| item_2 | B |
| item_3 | C |
| item_4 | D |
| item_5 | E |

table 车

| id | item_id | status |
|----|---------|--------|
| 1 | item_1 | 0 |
| 2 | item_1 | 1 |
| 3 | item_2 | 1 |
| 4 | item_2 | 0 |
| 5 | item_3 | 0 |
| 6 | item_4 | 1 |

如何获取与购物车不相关的商品以及最后相关但状态为 0 的商品?

我尝试了一些查询

SELECT * 
FROM `items` t1
JOIN cart t2 ON t1.id = t2.item_id
WHERE t2.id IN (SELECT MAX(cart.id) FROM cart GROUP BY (cart.item_id))
AND t2.status = 0

但结果是

| id     | name |
|--------|------|
| item_2 | B |
| item_3 | C |

预期结果

| id     | name |
|--------|------|
| item_2 | B |
| item_3 | C |
| item_5 | E |

其中 item_5 与购物车和最后相关但状态为 0 的 item_2 不相关

非常感谢任何帮助!提前致谢

最佳答案

重新发布我对已删除答案的评论:

SELECT t1.* 
FROM `items` t1
LEFT JOIN `cart` t2 ON t1.id = t2.item_id
AND t2.id IN (SELECT MAX(c.id) FROM `cart` c GROUP BY (c.item_id))
AND t2.status = 1
WHERE t2.status IS NULL

上面的查询应该可以解决问题,它会获取购物车表中最后状态不为 1 的商品表中的所有商品(因此任何最后状态为 0 的商品,或者根本不存在于购物车中)

关于mysql - 连接两个不存在于另一个表中但在某些条件下存在的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57398803/

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