UNION ALL и SELECT - PullRequest
       3

UNION ALL и SELECT

0 голосов
/ 17 мая 2019

Я хочу объединить 2 таблицы, 2 таблицы имеют одинаковые имена столбцов. После объединения всех добавьте условие where

Я попытался добавить скобку в блоке объединения

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

но не работает ...

Ответы [ 4 ]

4 голосов
/ 17 мая 2019

Вы должны псевдоним UNION запросов и обрабатывать их как подзапрос:

SELECT *
FROM (
   SELECT * FROM MYDB.user 
   UNION ALL 
   SELECT * FROM MYDB.user_old) t
WHERE userid="158"
1 голос
/ 17 мая 2019

/ вы можете использовать и сделать это /

with as temp(
(SELECT * FROM MYDB.user 
UNION ALL select * 
from MYDB.user_old)

select * from temp 
where userid="158"
0 голосов
/ 17 мая 2019

Просто добавьте select * from вне условия объединения.как ниже:

SELECT * FROM 
(
SELECT * FROM MYDB.user 
UNION ALL 
SELECT * FROM MYDB.user_old
) tmp
WHERE userid='158'
0 голосов
/ 17 мая 2019

использовать подзапрос, и это всегда должно быть одинаковое количество столбцов во время операции объединения, поэтому используйте явное имя столбца при выборе

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...