全部并选择

时间:2019-05-17 08:39:20

标签: mysql sql

我要合并2个表,2个表具有相同的列名。 全部合并后,在条件处添加

我尝试在联合部分添加括号

(SELECT * FROM MYDB.user 
UNION ALL select * 
from MYDB.user_old)
WHERE userid="158"

但不起作用...

4 个答案:

答案 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'