0

「invoice」と「credit_memo」の 2 つの MySQL テーブルがあります。

それらを組み合わせて、日付順に並べた 1 つの結果をリストしたいと思います。

請求書:
ID INT
date DATETIME
customer_id INT

credit_memo:
ID INT
date DATETIME
customer_id INT

私の最後の試み:

(SELECT ID AS invoice_number FROM invoice)
UNION
(SELECT ID AS credit_memo_number FROM credit_memo)
ORDER BY date

問題は、invoice_number と credit_memo_number の両方が、invoice_number 変数に入れられることです。そのため、結果を実行すると、すべて「請求書」テーブルからのもののように見えます。

特定の各行がどのテーブルからプルされているかを特定するにはどうすればよいですか?

ありがとう、アンディ

4

2 に答える 2

0
select id, t.table_name from invoice join information_schema.tables t on t.table_name='invoice'
union
select id, t.table_name from credit_memo join information_schema.tables t on t.table_name='credit_memo'
于 2012-10-11T00:12:15.793 に答える
0

アプローチ方法は次のとおりです。

両方のテーブルに顧客 ID があるため、それを介してそれらを結合できます。

SELECT i.ID AS invoice_number,c.ID AS credit_memo_number 
FROM invoice i
JOIN credit_memo c ON c.customer_id = i.customer_id
ORDER BY i.date ASC

これにより、請求書 ID とクレジット ID が選択され、請求日までに並べ替えられます。

于 2012-10-11T00:06:14.763 に答える