gpt4 book ai didi

mysql - 通过查询编辑器对表进行排序并接收重复行

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

所有的晚上(我们中的一些人早上),

首先,我是 SQL 的新手,您可以从以前的帖子中看出这一点。我正在尝试自学,这很困难,但同时又有趣又有益。

我正在弄乱我创建的现有表,我想弄清楚如何将两个表组合成一个查询,首先按升序对一列进行排序,然后按字母顺序对另一列进行排序。

我的客户表包含 4 行、3 列(客户 ID、客户名称、客户地址 ID),我的第二个表地址包含 4 行和 5 列(地址 ID、街道、城市、州、邮政编码)

我已经尝试了几种方法来做到这一点,但我遇到了一些问题。

SELECT [CustomerName],[Street],[City],[State],[ZipCode]
FROM Customer,Address
ORDER BY ZipCode ASC, CustomerName;

上面的代码将所有内容组合成一个结果,这太棒了,但我最终得到了 16 行。前 4 行按字母顺序显示 CustomerName,这正是我想要的。然而,其余列都是重复的。我附上了我两次尝试查询正确数据的屏幕截图。 This screenshot is the two attempts I have been messing with trying to get this to work

请注意,我将主键设置为 AddressID、CustomerID 并将外键设置为 CustomerAddressID。我不确定这些是否需要包含在我的查询中以帮助对信息进行排序。

为了解决这个问题,我已经受够了用头撞墙。我已经查阅了几乎所有我能找到的指南,但我似乎无法让它发挥作用。

如有任何指导,我们将不胜感激。

谢谢,

杰森

编辑**(这是我对数据的原始 INSERT 语句)

INSERT INTO [dbo].[Address]
([AddressID]
,[Street]
,[City]
,[State]
,[ZipCode])
VALUES
(1,'2400 Broadway','New York','NY',11201),
(2,'320 21st Street','Atlanta','GA',30322),
(3,'439 Skyline Blvd','Seattle','WA',98101),
(4,'56 Park Avenue','Dallas','TX',75201);
GO

INSERT INTO [dbo].[Customer]
([CustomerID]
,[CustomerName]
,[CustomerAddressID])
VALUES
(1,'Western Supply Co.',2),
(2,'Jake Harper',4),
(3,'Elizabeth Harper',1),
(4,'Abacus Consulting',3);
GO

编辑 2*

感谢 Ughai 的快速帮助。我玩了它并弄明白了。现在完美运行:

SELECT Customer.CustomerName, Address.Street, Address.City, Address.State, Address.ZipCode
FROM Customer
INNER JOIN Address
ON Customer.CustomerAddressID=Address.AddressID
ORDER BY ZipCode ASC, CustomerName ASC;

最佳答案

您编写了一个仅执行交叉连接的查询。尝试以下查询以获得正确的结果。

SELECT C.CustomerName, A.Street, A.City, A.State, A.ZipCpde 
FROM Customer C
INNER JOIN Address A
ON C.CustomerAddressID = A.AddressID
ORDER BY A.ZipCode ASC, C.CustomerNAme;

当您想从两个或多个表中获取结果时,您总是使用 JOIN。JOIN 子句总是返回简洁的结果。

关于mysql - 通过查询编辑器对表进行排序并接收重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30497353/

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