Mysql 将两个表组合在一起以获得所有列,但我需要单独的数据行,而不是一行

Mysql 将两个表组合在一起以获得所有列,但我需要单独的数据行,而不是一行,mysql,sql,Mysql,Sql,我需要一些帮助,找出将两个表合并为一个表的SQL。我想合并这些表,并在每个表的不同行上显示数据,但我下面的内容只显示一行 以下是表格: 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

我需要一些帮助,找出将两个表合并为一个表的SQL。我想合并这些表,并在每个表的不同行上显示数据,但我下面的内容只显示一行

以下是表格:

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;
这将导致两个表合并在一起,但只创建一行:

invoice_id   col1   col2    pmt_invoice_id   colA   ColB
1            ABC    XYZ     1                111    222
我希望该表能够将表合并在一起,这样我就可以得到所有的列,但我希望将行分开,而不是一行合并数据,这样我就可以以更符合逻辑的方式循环数据:

invoice_id   col1   col2    pmt_invoice_id   colA   ColB
1            ABC    XYZ     null             null   null
                            1                111    222 
有没有一种方法可以通过SQL实现这一点


谢谢。

为了达到这个效果

invoice_id col1 col2 pmt_invoice_id colA ColB 1 ABC XYZ null null null 1 111 222
如前所述,要简单地将两个表堆叠在一起,然后对齐列并使用
UNION ALL
。如果你想删除重复项,你可以使用
UNION

+1,因为我认为这正是他在第二次审查问题时想要的。这太完美了!非常感谢你!
SELECT invoice_id, col1, col2, NULL AS pmt_invoice_id, NULL AS colA, NULL AS col
FROM tenant_invoices
UNION ALL
SELECT NULL, NULL, NULL, pmt_invoice_id, colA, colB
FROM tenant_payments