2016-08-19 3 views
0

私は2つのテーブルを結合しようとしていますが、両方のテーブルにagent_idとdateという2つの同じカラム名があります。両方のテーブルにはagent_idとdateがあります。日付列ではなく、それは、私はそれがここに日付ごとに一度と順番に示されるべきで欲しいその倍の日付列を示していますので、両方のテーブルには、日付列を持っているとして、私のテーブルの例である:私はこれらの両方のテーブルを結合しようとした2つの列でmysqlを結合するクエリ

Table 1 (sales_report) 
date   agent_id agent_name agent_commission 
01-Jan-2016 1   Jhon   200 
02-Jan-2016 2   Smith  250 
03-Jan-2016 3   Tracy  150 
04-Jan-2016 4   Sam   120 

Table 2 (payments) 
date   agent_id paid 
02-Jan-2016 1   200 
03-Jan-2016 2   150 
04-Jan-2016 3   100 
05-Jan-2016 4   50 

by agent_id今私の質問はどのように私は日付で注文できますか?ここで

は、私が持っているクエリです:

SELECT * 
FROM `sales_report` 
INNER JOIN `payments` 
ON `sales_report`.`agnt_id`=`payments`.`agnt_id` ORDER BY date 
+0

どの日から注文しますか? sales_reportまたは支払いからですか? – mmmm

+0

あなたが正しいと分かっているので、あなたは結合の代わりに連合を使うべきです。しかし、あなたが私たちに期待する結果を表示することができれば、より明確になります – Jens

+0

実際には、結果と日付の両方を日付の順に並べ替えるだけです。例えば、テーブル1の日付値が'01-Jan-2016 'で、テーブル2の日付値が'02 -Jan-2016 'システムは最初のテーブルの値を印刷し、2番目のテーブルの値を出力する必要があります。これはすべてのレコードが表示されます – SimulationCode

答えて

1
SELECT sr.*,pm.paid 
    FROM `sales_report` as sr 
    INNER JOIN `payments` as pm 
    ON sr.`agent_id`=pm.`agent_id` 
    ORDER BY sr.date, pm.date 

あなたは第一表日後、第二表の日付で最初のテーブルと注文から日付取得します。

+0

第2テーブルの結果の表示は、最初のテーブルの行の下に表示されます。私は各テーブルのすべての列を1つの行に入れたいわけではありません – SimulationCode

+0

言い換えれば、私はちょうど両方のテーブルを組み合わせて、最初に古いものを表示し、 – SimulationCode

関連する問題