gpt4 book ai didi

mysql - 如何从两个表中选择数据,其中一个表包含多个带有 id 的列

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

我有两个表:

  • 产品:id、product_name、color_1(id)、color_2(id)、color_3(id)
  • 颜色:id,颜色

我想选择所有带有颜色的产品。

产品:

id  product_name    color_1(id) color_2(id) color_3(id)
--------------------------------------------------------
1 Apple 1 2 3
2 Table 2 3 0

颜色:

id  color
---------
0 False
1 Blue
2 Green
3 Yellow

我想得到一个查询:

1   Apple       Blue        Green       Yellow
2 Table Green Yellow False

最佳答案

使用内部联接。

SELECT     p.product_name, c1.color, c2.color, c3.color
FROM Products p
INNER JOIN Colors c1 ON c1.id = p.color_1
INNER JOIN Colors c2 ON c2.id = p.color_2
INNER JOIN Colors c3 ON c3.id = p.color_3

根据您的评论:

如果您想在某些产品颜色 ID 不适用的情况下获得结果,请切换到 LEFT OUTER JOIN。这不会过滤掉记录,如果没有要加入的值,则简单地为所有列返回 NULL。

SELECT          p.product_name, c1.color, c2.color, c3.color
FROM Products p
LEFT OUTER JOIN Colors c1 ON c1.id = p.color_1
LEFT OUTER JOIN Colors c2 ON c2.id = p.color_2
LEFT OUTER JOIN Colors c3 ON c3.id = p.color_3

关于mysql - 如何从两个表中选择数据,其中一个表包含多个带有 id 的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9759588/

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