2017-11-23 10 views
1

標準の結合を使用して結合されたときに重複した結果を作成する2つのMySQLテーブルがあります。その理由は、それらを結合するために使用される共通のフィールドが一意ではないからです。複数のパターンを試しましたが、正しい結果を得ることはできません。うまくいけば、誰かが私たちを正しい方向に向けることができます。

Table A/ws_511_1

Table B/ws_583_1

正しい出力は次のようになります。

Correct output

私たちのすべての列がここに含まれていない正しい出力(に最も近いを持っているクエリ):
重複するインデックス値を持つテーブルへのMySQLの結合

SELECT a.col_3 AS Data, SUM(a.col_4) AS `October 2016`, SUM(a.col_5) AS `November 2016`, SUM(b.col_4) AS `February 2017`, SUM(b.col_5) AS `March 2017` FROM ws_511_1 a LEFT JOIN (SELECT * FROM ws_583_1 b GROUP BY col_3) b ON b.col_3 = a.col_3 WHERE a.id!='1' GROUP BY a.col_3

このクエリの出力は次のとおりです。

Incorrect output

あなたは、10月と11月は正しいですが、結合列の結果が誤っていることがわかります。

答えて

0

はそんなに左の表の結果によって

SELECT a.col_3 AS Data 
    , SUM(a.col_4) AS `October 2016` 
    , SUM(a.col_5) AS `November 2016` 
    , b.`February 2017` 
    , b.`March 2017` 
    FROM ws_511_1 a 
    LEFT JOIN (
     SELECT col_3 
     , SUM(b.col_4) AS `February 2017` 
     , SUM(b.col_5) AS `March 2017` 
     FROM ws_583_1 b 
     GROUP BY col_3 
) b ON b.col_3 = a.col_3 
    WHERE a.id!='1' 
    GROUP BY a.col_3 , , b.`February 2017`, b.`March 2017` 
+0

おかげでグループを使用することができます。完璧に動作します。あなたにビールを借りてください! – claytont

+0

@claytontありがとう..初めて私はあなたの地域にいる..私はしたい – scaisEdge

関連する問題