gpt4 book ai didi

mysql - SQL查询获取2个表之间的结果,第二个有3种返回数据的可能性

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

尽管我的问题被警告为类似的标题,但我在这里找不到任何类似的问题。我来详细解释一下:我有两个表(我正在使用 MySQL),其中插入了这些值:

表格产品:

id  name
1 TV
2 RADIO
3 COMPUTER

表 sales(product_id 是引用 products(id) 的 FK):
id 数量 Product_id
1 50 2
2 100 3
3 200 3

电视尚未售出, radio 售出 1 台(共 50 台),电脑售出两台(100 台中的一台,另一台为 200 台);

现在我必须创建一个查询,在其中可以显示产品及其销售情况,但有一些条件使该任务变得困难:
1 - 如果没有销售,则明显显示NULL;
2 - 如果有 1 笔销售,请显示该销售;
3 - 如果有超过 1 笔销售,则显示最新的销售(我尝试使用函数 MAX(id) 来简化操作,但没有成功);

在上面的表格示例中,我希望在正确的 SQL 查询之后显示这一点:


产品.名称销售.数量
电视无效
广播电台50
电脑200

我一直在尝试很多连接、内连接等,但找不到我期望的结果。哪个 SQL 查询可以给出我期望的答案?任何帮助将不胜感激。谢谢。

最佳答案

希望下面的查询有效。

SELECT products.name, sl.quantity 
FROM products LEFT JOIN (
SELECT product_id, max(quantity) as quantity FROM sales GROUP BY product_id) sl
ON products.id = sl.product_id

关于mysql - SQL查询获取2个表之间的结果,第二个有3种返回数据的可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52485257/

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