mysql - 为什么当我内部连接我的所有三个表时,我得到重复的数据值作为记录?

标签 mysql insert inner-join

INSERT INTO Supplier(Name, City, PhoneNumber, Date, ZipCode)
VALUES ('Sandra Auto Parts', 'Akron', '330-217-1263', '2015-01-22', '44303');  

INSERT INTO Supplier(Name, City, PhoneNumber, Date, ZipCode)
VALUES ('Justin Auto Mechanics Parts', 'Cleveland', '216-227-2134', '2014-02-01', '44102');

INSERT INTO Supplier(Name, City, PhoneNumber, Date, ZipCode)
VALUES ('Mark Diesel Parts', 'Euclid', '216-223-4133', '2013-01-03', '44103');  

SELECT * FROM supplier; 



INSERT INTO Parts(PartName, DatePartCreated)
VALUES ('Hood', '2015-03-21');

INSERT INTO Parts(PartName, DatePartCreated)
VALUES('Rim', '2016-02-22');

INSERT INTO Parts(PartName, DatePartCreated)
VALUES ('Bumper', '2016-01-24');

SELECT *FROM Parts;


INSERT INTO Supplies(Supplier_SupplierID, Parts_PartID, Cost) VALUES (1, 1, 10);

INSERT INTO Supplies(Supplier_SupplierID, Parts_PartID, Cost) VALUES (2, 2, 20);

INSERT INTO Supplies(Supplier_SupplierID, Parts_PartID, Cost) VALUES (3, 3, 30);

SELECT *FROM Supplies;

我的SQL:

SELECT
 supplier.Name AS 'Supplier Name', 
 parts.PartName AS 'Part Name', 
 Cost
FROM 
Supplier
INNER JOIN
Parts ON SupplierID = PartID
INNER JOIN 
Supplies ON  Parts_PartID= Supplier_SupplierID
ORDER BY supplier.Name, parts.PartName; 

我内部连接了我的三个表,它们是 Parts、Supplier 和 Supplies 表。我的问题是为什么当我内部连接三个表时,它们会重复记录不止一次。它应该只是一次而不是多次的一个记录存储。任何人都可以提供任何建议吗?这是我的 SQL 代码和我的问题的屏幕截图。 Here is screenshot of my problem

最佳答案

您错误地连接了表格。您希望将供应商表和零件表与供应表连接起来,而不是彼此连接。

我想你想要这个:

select supplier.name as 'Supplier Name',
    parts.PartName as 'Part Name',
    Cost
from Supplies
join Parts
    on Parts_PartID = PartId
join Supplier
    on Supplier_SupplierID = SupplierId
order by supplier.name,
    parts.PartName;

Demo

关于mysql - 为什么当我内部连接我的所有三个表时,我得到重复的数据值作为记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42612361/

相关文章:

mysql - SQL 条件内连接Where

mysql - Rails MYSQL 迁移仅在测试时失败?

php - 如何在连接表(laravel)中获得最低价格

sql - Mysql 复制转储无需停机?空的sql文件

sql - 带有多个嵌套 SELECT 的 MySQL INSERT

mysql - 使用 2 个表中的列进行更新

php - 基于两个数据库字段的Where条件

python - 创建 BST : python 的最佳实践

java - TreeMap - 搜索时间复杂度

mysql - 如何优化一些 INNER JOIN Mysql 查询