2016-11-16 12 views
0

Iは、これらのデータを持つ2つのテーブルインナー重複値のSQLなしで参加

表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 

を有します私はこれらの2つのテーブルを結合しようとすると、結果として100行を取得します。 10行だけを取得するソリューションはありますか?クエリTable1.MaintChargeItem_IDTable2.MaintChargeItem_ID

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 
+1

サンプルデータをテキストとして投稿してください。一部のドメインで画像がブロックされる可能性があります。 – TheGameiswar

+0

あなたのクエリを追加して、それが含まれていないとあなたのSQLに何か問題があるかどうかを判断するのは難しいです。質問: – MeanGreen

+0

あなたの条件はすべてのレコードペアに当てはまるので、結果に10 x 10 = 100行が得られます。他に何を期待しましたか? *あなたが得たい結果は何ですか? –

答えて

0

ユニーク列であるように思われません。彼らは外部キー制約には適していません。したがって、Table1への外部キー参照を持つTable2を作成してから、クエリを実行してみてください。必要に応じて結果を得ることができます。あなたがこれを行った後

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/

関連する問題