gpt4 book ai didi

mysql - 使用多重内部连接在 MySQL 中塑造数据集

转载 作者:太空宇宙 更新时间:2023-11-03 11:58:14 25 4
gpt4 key购买 nike

我正在学习 MySQL 并使用一些我根据在线示例设置的虚拟表。

没有给出创建表格的代码,只是给出了它们应该是什么样子的最终结果,所以我尽力重新创建它们。 我知道他们的设计并不理想 - 例如,我宁愿为 customer_info.state 列使用 ENUM 之类的东西,并为日期使用某种类型的带有 getdate() 的 DATETIME,但是没有那些(更合适的设置)还没有成功,所以我首先在 JOINS 上工作,因为它们与我的工作相关。 稍后我将对设计进行微调(我的工作将涉及很多查询和连接,而不是很多数据库设计,尽管我最终想学习更好的习惯/技能在那个舞台上)。

我目前正在练习我的 INNER JOIN,并且已经成功地连接了三个表,但是结果集并不是我想要的那样。

目前,我的三个表是:

customer_info (customerid INT NOT NULL, firstname VARCHAR(20) NOT NULL, lastname VARCHAR(20) NOT NULL, city VARCHAR(25), state VARCHAR(2))

purchases (customerid INT NOT NULL, order_month_day VARCHAR(10), order_year INT NOT NULL, item VARCHAR(50) NOT NULL, quantity INT NOT NULL, price FLOAT NOT NULL)

customer_favorite_colors (customerid INT NOT NULL, favorite_color VARCHAR(20) NOT NULL)

我将这个查询放在一起以连接三个表并显示一些特定的列:

SELECT customer_info.customerid, customer_info.firstname, customer_info.lastname, customer_info.city, customer_info.state, purchases.item, customer_favorite_colors.favorite_color

FROM customer_info

INNER JOIN purchases ON customer_info.customerid = purchases.customerid

INNER JOIN customer_favorite_colors ON purchases.customerid = customer_favorite_colors.customerid

ORDER BY customer_info.customerid;

我的结果集列出了我正在寻找的所有内容,除了它的格式如下:

These are the results I am getting:

那么,我如何让 SQL 向我显示这些字段中的每一个,但更像是:

These are the results I would like to achieve:

我认为这与使用 DISTINCT 有关,但我一直想不出如何让它发挥作用。

此外,如果 MySQL 与 SQL Server 2012 的解决方案存在任何差异,那也会非常有帮助(我们在工作中使用 SQL Server 2012)。

最佳答案

如果您将 GROUP BY 添加到您现有的查询中会怎么样

    SELECT customer_info.customerid, customer_info.firstname,
customer_info.lastname, customer_info.city, customer_info.state,
GROUP_CONCAT( purchases.item), customer_favorite_colors.favorite_color
FROM customer_info
INNER JOIN purchases ON customer_info.customerid = purchases.customerid
INNER JOIN customer_favorite_colors
ON purchases.customerid = customer_favorite_colors.customerid
GROUP BY customer_info.customerid, customer_info.firstname,
customer_info.lastname, customer_info.city,
customer_info.state, customer_favorite_colors.favorite_color
ORDER BY customer_info.customerid;

关于mysql - 使用多重内部连接在 MySQL 中塑造数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30925979/

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