Как написать инструкцию INSERT, если я получаю значения colA из TableX, colB из TableY и colC из TableZ?
например: INSERT INTO TableA (colA, colB, colC) VALUES (?,?,?)
Любые идеи, если это возможно?
Как написать инструкцию INSERT, если я получаю значения colA из TableX, colB из TableY и colC из TableZ?
например: INSERT INTO TableA (colA, colB, colC) VALUES (?,?,?)
Любые идеи, если это возможно?
INSERT INTO TableA(colA, colB, colC)
SELECT TableX.valA, TableY.valB, TableZ.valC
FROM TableX
INNER JOIN TableY ON :......
INNER JOIN TableZ ON ........
Конечно, TableX, TableY и TAbleZ также могут быть связаны каким-то другим способом (не INNER JOIN).
Если вы не можете найти какое-либо отношение между таблицами AT ALL, вы также можете сделать три отдельных
SELECT @value1 = valA FROM TableX WHERE ......
SELECT @value2 = valB FROM TableY WHERE ......
SELECT @value3 = valC FROM TableZ WHERE ......
а затем вставить:
INSERT INTO TableA(colA, colB, colC)
VALUES(@value1, @value2, @value3)
В конечном итоге вы не можете выразить все в одном выражении SELECT
.
Марк
В ответ на ответ marc_s вы можете запрашивать из несвязанных таблиц в после выбора, например:
INSERT INTO TableA
(colA, colB, colC)
SELECT
(SELECT valA FROM TableX WHERE ...),
(SELECT valB FROM TableY WHERE ...),
(SELECT valC FROM TableZ WHERE ...)
Insert into TableA (ColA, ColB, ColC) . . .
Должны быть имена столбцов, как указано в таблице A. Нет ничего плохого в
Insert into TableA (ColA, ColB, ColC) . . .
Select TableX.Col1, TableY.Col1, TableZ.Col5
From TableX, TableY, TableZ
Where . . .
Вам нужно будет присоединиться к таблицам, из которых вы хотите сделать выбор.
Вот ресурс по SQL-соединениям:
www.w3schools.com/sql/sql_join.asp
Вы также можете проверить эту бесплатную книгу в формате PDF от ребят в www.simple-talk.com, которая охватывает основы SQL: