2012-11-30 50 views
1

我需要创建两个临时表,然后将它们连接在一起放入一个表中并保留表和数据的所有列名。使用Mysql将两个临时表合并到一个表中,但保留所有列名

CREATE TEMPORARY TABLE tenant_invoices 
    SELECT * FROM invoices 

CREATE TEMPORARY TABLE tenant_payments 
    SELECT * FROM payments 

我该如何使用MYSQL来做到这一点?

谢谢。

+0

,请告诉我们这两个表模式 – GreyBeardedGeek

回答

1

一旦你创建两个临时表,你可以使用一个CROSS JOIN连接表一起:

select ti.*, tp.* 
from tenant_invoices ti 
cross join tenant_payments tp 

SQL Fiddle with Demo

CROSS JOIN如果没有现场连接表会工作。如果你有一个字段加入,那么你可以使用INNER JOINLEFT JOIN

select ti.*, tp.* 
from tenant_invoices ti 
inner join tenant_payments tp 
    on ti.account_id = tp.account_id 

select ti.*, tp.* 
from tenant_invoices ti 
left join tenant_payments tp 
    on ti.account_id = tp.account_id 

SQL Fiddle with demo

+0

感谢。我补充说,但它是复制结果。而不是8行,我得到16行? – Ronedog

+0

你的桌子有一个可以加入他们的领域吗? Like Invoice.id = payment.id? – Taryn

+0

我有“account_id”我更新了sql小提琴http://sqlfiddle.com/#!2/3036d/2但不知道我说得没错。 – Ronedog

相关问题