Ответ 1
Используйте запрос insert ... select
и поместите известные значения в select
:
insert into table1
select 'A string', 5, idTable2
from table2
where ...
Есть ли способ вставить предварительно заданные значения и значения, которые я получаю из запроса select? Например:
INSERT INTO table1 VALUES ("A string", 5, [int]).
У меня есть значение "A string" и число 5, но я должен найти значение [int] из select следующим образом:
SELECT idTable2
FROM table2
WHERE ...
который дает мне этот идентификатор для ввода внутри таблицы1.
Как слить это в одно утверждение?
Используйте запрос insert ... select
и поместите известные значения в select
:
insert into table1
select 'A string', 5, idTable2
from table2
where ...
просто используйте подзапрос прямо здесь:
INSERT INTO table1 VALUES ("A string", 5, (SELECT ...)).
INSERT INTO table_name1 (id, name, address, contact_number) SELECT id, name, address, contact_number FROM table_name2;
попробуйте это
INSERT INTO TABLE1 (COL1 , COL2,COL3) values
('A STRING' , 5 , (select idTable2 from Table2) )
where ...
Все остальные ответы решают проблему, и мой ответ работает так же, как и другие, но только более дидактически (это работает на MySQL... не знаю других SQL-серверов):
INSERT INTO table1 SET
stringColumn = 'A String',
numericColumn = 5,
selectColumn = (SELECT idTable2 FROM table2 WHERE ...);
Вы можете ссылаться на документацию MySQL: Синтаксис INSERT
INSERT INTO table1
SELECT "A string", 5, idTable2
FROM table2
WHERE ...
Смотрите: http://dev.mysql.com/doc/refman/5.6/en/insert-select.html
Попробуйте следующее:
INSERT INTO table1
SELECT 'A string', 5, idTable2 idTable2 FROM table2 WHERE ...
INSERT INTO table1 (col1, col2)
SELECT "a string", 5, TheNameOfTheFieldInTable2
FROM table2 where ...
Попробуйте следующее:
INSERT INTO table1 SELECT "A string", 5, idTable2 FROM table2 WHERE ...