2つのテーブルを1つのテーブルに結合するためのSQLを理解するのに助けが必要です。テーブルを組み合わせて、テーブルごとに異なる行にデータを表示したいのですが、以下に示すのは1行だけです。
表は次のとおりです。
CREATE TABLE tenant_invoices(
invoice_id INT,
col1 INT,
col2 INT
)
CREATE TABLE tenant_payments(
pmt_invoice_id INT,
colA INT,
colB INT
)
作成する必要のある一時テーブルは次のとおりです。
CREATE TEMPORARY TABLE tenant_invoices
SELECT * FROM invoices
CREATE TEMPORARY TABLE tenant_payments
SELECT * FROM payments
select ti.*, tp.*
from tenant_invoices ti
left join tenant_payments tp
on ti.invoice_id = tp.pmt_invoice_id
ORDER BY ti.invoice_date DESC;
これにより、2つのテーブルがマージされますが、作成される行は1つだけです。
invoice_id col1 col2 pmt_invoice_id colA ColB
1 ABC XYZ 1 111 222
テーブルをマージしてすべての列を取得できるようにしたいのですが、データを組み合わせた1つの行ではなく、行を分離して、より論理的な方法でデータをループできるようにします。
invoice_id col1 col2 pmt_invoice_id colA ColB
1 ABC XYZ null null null
1 111 222
SQLでこれを実現する方法はありますか?
ありがとう。