gpt4 book ai didi

mysql - 左连接的修改版本

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

我在寻找这个问题的解决方案时遇到了一些问题。我认为我的问题是不知道我的特定需求在 mysql 约定中是如何命名的。

无论如何,问题就在这里。

我有 2 个表:

表 1 是:

Color

id,name
1,red
2,blue
3,green
4,yellow

表 2 是:

Item

id,name,color_id,quantity
1,knife,1,10
2,fork,1,10
3,knife,3,10
4,hammer,4,10

现在我想执行一个返回我这个的查询:

1,red,knife,10
2,blue,null,null
3,green,knife,10
4,yellow,null,null

作为对查询的描述,我会说:

1- 列出表 1 中的所有元素(仅一次)

2- 在查询中给定一个工具(在本例中为刀),用数量填充连接。如果该对象在该颜色中不可用,则保留空值。

现在我尝试了一个简单的左连接,不幸的是它也返回了我黄色的锤子。我尝试了一个 left join + where 子句,但它只返回红色刀和绿色刀,没有显示黄色和蓝色。

我希望避免子查询。

你怎么看?

最佳答案

也许您应该展示您的尝试,但这里有一个查询将返回您要求的结果:

SELECT c.id, c.name, i.name, i.quantity
FROM Color c
LEFT JOIN Item i
ON i.color_id = c.id
AND i.name = 'knife'

这里的关键是将'knife'放在连接条件中,而不是WHERE子句中。

关于mysql - 左连接的修改版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23834941/

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