gpt4 book ai didi

mysql - SQL:一个表引用另一个表以返回第三个表

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

我不是一个 SQL 专家,所以这个问题对你们中的许多人来说可能很简单。但我有两个表,我想要一个 SQL 语句通过组合表 1 和表 2 的值来返回第三个表。

我有下表:

表产品:

Column NAME
Column CAMPAIGNS

餐 table 事件:

Column ID 
Column NAME

具有以下值:

产品:

Nike Sneakers | 1 2 3

事件:

1 | Red Shoes
2 | No laces
3 | Velcro
4 | White Shoes

我希望随产品一起返回营销事件名称,而不是营销事件 ID。

结果表:

Nike Sneaker | Red shoes, No laces, Velcro

你们将如何实现这一目标?

谢谢!

最佳答案

您想要做的是创建多对多联接(1 个产品可以有多个广告系列,1 个广告系列可以有多个产品)。您无法通过将所有营销事件存储在一列中来实现此目的。正确的方法是创建多对多联接,这意味着您需要创建一个联接表:

Table PRODUCT:
Column ID
Column NAME

Table CAMPAIGN:
Column ID
Column NAME

Table PRODUCTCAMPAIGN
Column ProductID
Column CampaignID


Product:
1 | Nike Sneakers

Campaign:
1 | Red Shoes
2 | No laces
3 | Velcro
4 | White Shoes

ProductCampaign
1 | 1
1 | 2
1 | 3

然后你就可以这样做

SELECT Product.ID, Campaign.Name
FROM Product
INNER JOIN ProductCampaign
ON ProductCampaign.ProductID = Product.ID
INNER JOIN Campaign
ON Campaign.ID = ProductCampaign.CampaignID

这应该给你:

Nike Sneaker | Red shoes
Nike Sneaker | No laces
Nike Sneaker | Velcro

然后您应该能够将它们以逗号分隔。我面前没有 MySQL 来帮助你解决这个问题。我认为 GROUP_CONCAT 应该适合你。

关于mysql - SQL:一个表引用另一个表以返回第三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18951489/

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