【问题标题】:combine two temporary tables into one table, but keep all the column names将两张临时表合并为一张表,但保留所有列名
【发布时间】:2012-11-19 05:33:45
【问题描述】:

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

CREATE TEMPORARY TABLE tenant_invoices
    SELECT * FROM invoices

CREATE TEMPORARY TABLE tenant_payments
    SELECT * FROM payments

我该如何使用 MYSQL 执行此操作?

谢谢。

【问题讨论】:

  • 请向我们展示这两个表模式

标签: mysql


【解决方案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

【讨论】:

  • 谢谢。我添加了这一点,但它复制了结果。我得到 16 行而不是 8 行?
  • 您的表是否有可以连接它们的字段?喜欢 Invoice.id = payment.id?
  • 我有 "account_id" 我更新了 sql fiddle sqlfiddle.com/#!2/3036d/2 但不确定我做对了。
  • @Ronedog 如果你有一个可以加入表格的字段,你可以使用LEFT JOININNER JOIN - 看这个小提琴 -- sqlfiddle.com/#!2/3036d/4 -- 看我的编辑
  • 做到了。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-15
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 2016-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多