我要合并2个表,2个表具有相同的列名。 全部合并后,在条件处添加
我尝试在联合部分添加括号
(SELECT * FROM MYDB.user
UNION ALL select *
from MYDB.user_old)
WHERE userid="158"
但不起作用...
答案 0 :(得分:4)
您必须为UNION
查询添加别名,并将其视为子查询:
SELECT *
FROM (
SELECT * FROM MYDB.user
UNION ALL
SELECT * FROM MYDB.user_old) t
WHERE userid="158"
答案 1 :(得分:1)
/ 您可以使用并执行 /
with as temp(
(SELECT * FROM MYDB.user
UNION ALL select *
from MYDB.user_old)
select * from temp
where userid="158"
答案 2 :(得分:0)
使用子查询,并且在进行联合操作时必须始终具有相同的列数,因此在选择中使用显式列名
select * from
(select userid,col2,......coln from MYDB.user
union all
select userid,col2......coln from MYDB.user_old
) a WHERE userid="158"
如果userid列数据类型为int,则使用WHERE userid=158
答案 3 :(得分:0)
只需在union子句之外添加select * from
。如下所示:
SELECT * FROM
(
SELECT * FROM MYDB.user
UNION ALL
SELECT * FROM MYDB.user_old
) tmp
WHERE userid='158'