2016-07-19 2 views
1

Допустим, мы имеем таблицу, как показано ниже:Правильный способ для выполнения Sql само объединение

table1: 

**t1** **t2** **t3** 
abc  xyz  aaa 

Могу ли я сделать что-то вроде:

select * from(
(select t.t1,t.t2,t.t3 from table1 t) as tmp 
union 
(select tmp2.t1,'someothervalue' as t2,tmp2.t3 from tmp tmp2)) as result 
order by result.t1 

В основном союзной операции с первой TMP самой таблицы. Предположим, что t1, t2, t3 имеют тип varchar.

+0

Да, Союз будет работать до тех пор, как выбираются типы неявно совместимы друг с другом. Например, при попытке объединения между bigint и varchar, вы получите ошибку. – M22an

ответ

1

from tmp tmp2 не представляется возможным, вместо этого вы можете использовать from table1 tmp2, обновление SQL Query

SELECT * FROM(
    SELECT t.t1,t.t2,t.t3 FROM table1 t 
UNION 
    SELECT tmp2.t1,'someothervalue' as t2,tmp2.t3 FROM table1 tmp2 
) as result 
ORDER BY result.t1 
+0

-Если предположим, что в вашем запросе 't' является результатом некоторых сложных объединений, в этом случае что можно сделать? –

+0

Не работает тайным путем. Дает ошибку. Попробуйте. –

+0

Это один из вопросов :) Не могу отправить мой запрос здесь. Но сценарий тот же. –

Смежные вопросы