我有两张包含这些数据的表
表1(10行) Table1
MaintRateSplit_ID MaintChargeItem_ID
86 256
87 256
88 256
89 256
90 256
91 256
92 256
93 256
94 256
95 256
表2(10行) Table2
MaintChargeItem_ID Contribution_Maximum_Value
256 175642.00
256 33851.00
256 130888.00
256 54612.00
256 66903.00
256 246747.00
256 503602.00
256 85944.00
256 262130.00
256 152892.00
当我尝试连接这两个表时,我得到了100行。有解决方案只能获得10行吗?
SELECT MaintRateSplit_ID,Contribution_Maximum_Value
FROM Table1
INNER JOIN Table2
ON Table1.MaintChargeItem_ID = Table2.MaintChargeItem_ID
This is the desired result
MaintRateSplit_ID Contribution_Maximum_Value
86 175642.00
87 33851.00
88 130888.00
89 54612.00
90 66903.00
91 246747.00
92 503602.00
93 85944.00
94 262130.00
95 152892.00
答案 0 :(得分:0)
在您的查询Table1.MaintChargeItem_ID
和Table2.MaintChargeItem_ID
中,似乎不是唯一的列。他们不会为外键约束做好准备。因此,创建Table2
具有Table1
的外键引用,然后尝试运行查询。您可以根据需要获得结果。
Create Table1
(MaintRateSplit_ID int NOT NULL,
MaintChargeItem_ID int NOT NULL,
PRIMARY KEY MaintRateSplit_ID);
Create Table2
(MaintRateSplit_ID int NOT NULL,
MaintChargeItem_ID int NOT NULL,
FOREIGN KEY (MaintRateSplit_ID) REFERENCES Table1(MaintRateSplit_ID));
完成此操作后,您可以使用Inner Join
获取所需数量的元组
<强>查询:强>
SELECT *
FROM Table1
INNER JOIN Table2
ON Table1.MaintRateSplit_ID=Table2.MaintRateSplit_ID;
要了解外键约束,请浏览以下链接: http://www.mysqltutorial.org/mysql-foreign-key/
要了解联接,请通过以下链接: https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/