2017-01-13 11 views
1

У меня есть союзное заявление:Вставка в таблицу, где значение столбца из союза заявление

SELECT MAX(col + 1) FROM 
(SELECT col FROM table_1 
UNION ALL 
SELECT col FROM table_2) AS alias 

Я хочу, чтобы включить это заявление как часть вставки, т.е.

INSERT INTO table(col_1, col_2, col_3, col_4) VALUES(x, y, (the union statement), z) 

Кто-нибудь знает, как это может быть достигнуто?

ответ

1

Включите дополнительные столбцы (x, y) также в выбранный запрос. Если x, y являются статическими значениями, вы можете напрямую добавить эти значения, иначе вы можете изменить свой запрос, чтобы добавить дополнительные столбцы x, y.

INSERT INTO table(col_1, col_2, col_3) 
SELECT x, y,MAX(col + 1) ,z 
FROM (SELECT col FROM table_1 
     UNION ALL 
     SELECT col FROM table_2 
    ) AS alias 
+0

Я расширил сложность инструкции insert. – Kurtiss

+0

@ Kurtiss, что такое x, y, z здесь. Статические значения, переменные или другой вывод другого запроса? –

+0

x, y, z есть примеры, они могут ссылаться на что угодно; основное внимание уделено тому, как вставить результат утверждения союза. – Kurtiss

0

Я только что использовал сценарии, которые вы дали, и это сработало.

INSERT INTO table(col_1, col_2, col_3, col_4) VALUES(x, y, (SELECT MAX(col +1) FROM 
    (SELECT col FROM table_1 
    UNION ALL 
    SELECT col FROM table_2) AS alias), z) 

У вас есть ошибки, которые возникают, когда вы ставите это простое заявление?

+0

Была моя первая попытка, заявив, что она не может выполнить заявление, подлежащее на имя, данное (то есть col), является незаконным в этом контексте. – Kurtiss

+0

Я не получил эту ошибку ... вы можете попробовать эту вторую попытку. –

+0

Я только что сделал, все равно не понравилось T-T – Kurtiss

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

  • Нет связанных вопросов^_^