0

クライアントのクレジット(支払い)用の2つのテーブルがあり、次のようになります。

id     client     date              amount
1       ana       2012-01-01        5000  
2       ana       2012 02-01        10000
3       ana       2012-03-01        5000

など..

そして、次のような借方 (引き出し) の別の表:

id    client      date             amount 
1       ana       2012-01-15        5000
2       ana       2012 02-15        8000
3       ana       2012-03-15        9000

など...

各クライアントのすべてのトランザクションを日付で並べ替え、2 つの日付列を 1 つに結合してから日付で並べ替えるクエリを生成したいと思います。次のようになります。

date           payment     withdrawal 
2012-01-01     5000           ----
2012-01-15     -----          5000
2012-02-01     10000          ----  
2012-02-15     -----          8000
2012-03-01      5000          ----
2012-03-15     -----          9000

これは私が試したものですが、間違っていることはわかっており、重複したレコードが得られました:

SELECT payments.amount, payments.date withdrawals.amount, withdrawals.date
FROM payments,withdrawals 
WHERE payments.client = withdrawals.client
ORDER BY date

LEFT JOIN を試しましたが、同じ結果が得られました。

 SELECT payments.amount, payments.date, withdrawals.amount, withdrawals.date
 FROM payments 
 LEFT JOIN withdrawals 
 ON payments.client= withdrawals.client
 ORDER BY date

助けてください、ありがとう

4

2 に答える 2

-1

あなたが探しているのは FULL OUTER JOIN です:

SELECT payments.amount, payments.date, withdrawals.amount, withdrawals.date
FROM payments FULL OUTER JOIN withdrawals
  ON payments.client= withdrawals.client
Order by date

または UNION を使用 (MySQL で必要な場合):

SELECT payments.amount, payments.date, withdrawals.amount, withdrawals.date
FROM payments LEFT OUTER JOIN withdrawals
  ON payments.client= withdrawals.client
Order by date
UNION
SELECT payments.amount, payments.date, withdrawals.amount, withdrawals.date
FROM payments RIGHT OUTER JOIN withdrawals
  ON payments.client= withdrawals.client
Order by date
于 2013-04-15T07:54:46.790 に答える