gpt4 book ai didi

mysql - 如何查询价格和数量合计小于另一个的商品

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

我有这个示例服务表,我在其中维护我作为产品销售的按摩服务的记录。

||ID||Duration||Price||
|1 |100 |10.0|
|2 |200 |20.0|
|3 |300 |30.0|
|4 |400 |25.0|
|5 |500 |50.0|

加类,我添加比现有产品更具竞争力的新产品(价格和持续时间的组合)以吸引更多客户。我想找到过时的记录。当你需要付出更多而得到更少时,它被认为是过时的。在上面的示例中,ID 为 3 的记录已过时。

如何编写查询来实现这一点?

最佳答案

过时的按摩是价格高于任何持续时间更长的按摩的按摩

可以使用这种查询来检索过时的按摩:

SELECT m1.*
FROM massages m1
JOIN massages m2
ON m1.Price > m2.Price
AND m1.Duration <= m2.Duration

然后,此查询可用于查找要在 DELETE 查询中删除的消息:

模式(MySQL v5.7)

CREATE TABLE massages (
`ID` INTEGER,
`Duration` INTEGER,
`Price` INTEGER
);

INSERT INTO massages
(`ID`, `Duration`, `Price`)
VALUES
(1, 100, 10.0),
(2, 200, 20.0),
(3, 300, 30.0),
(4, 400, 25.0),
(5, 500, 50.0);

-- -------------------------- This is what you are looking for --------------------------
DELETE FROM massages
WHERE massages.ID IN
(
SELECT id FROM
(
SELECT m1.ID AS id
FROM massages m1
JOIN massages m2
ON m1.Price > m2.Price
AND m1.Duration <= m2.Duration
) AS IdsToDelete
);
-- --------------------------------------------------------------------------------------

查询#1

SELECT * FROM massages;

输出

| ID  | Duration | Price |
| --- | -------- | ----- |
| 1 | 100 | 10 |
| 2 | 200 | 20 |
| 4 | 400 | 25 |
| 5 | 500 | 50 |

View on DB Fiddle

关于mysql - 如何查询价格和数量合计小于另一个的商品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55919744/

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