【发布时间】:2012-05-29 19:41:31
【问题描述】:
您好,我正在尝试合并两个表。
我的 id 只存在于左表中,而我的 id 只存在于右表中。我想得到一张包含所有 id 的表。我试过了:
select * from temp_hours as a
left outer join temp_orders as o on a.proj_id = o.proj_id
union
select * from temp_hours as a
right outer join temp_orders as o on a.proj_id = o.proj_id
但我得到了错误:
Can't reopen table: 'a'
任何想法我怎么能做到这一点?服务器版本:5.0.51a-24+lenny4 (Debian)
【问题讨论】:
-
尝试将两个 sql 查询放入
()。喜欢(query1) union (query2) -
或在第二次选择中使用不同的别名。
-
不确定这对您的情况是否有帮助,我意识到这已经很老了,但也许这会像我一样帮助其他人。默认情况下,联合使用 DISTINCT。如果联合拉取相同的信息,它会自动只显示新的 DISTINCT 信息。我必须为每个选择添加一些不同的东西才能正确显示。 SELECT 列,1 FROM... UNION SELECT 列,2 FROM... 更多:forums.mysql.com/read.php?10,220906,220926#msg-220926