MySQL插入到。。。值并选择

MySQL插入到。。。值并选择,mysql,sql,select,insert,Mysql,Sql,Select,Insert,有没有办法插入预设值和从select查询中获取的值? 例如: INSERT INTO table1 VALUES ("A string", 5, [int]). 我有一个字符串的值和数字5,但我必须从如下选择中找到[int]值: SELECT idTable2 FROM table2 WHERE ... 这给了我一个可以放在表1中的id 如何将此语句合并为一条语句?请尝试以下操作: INSERT INTO table1 SELECT 'A string', 5, idTable2 idTa

有没有办法插入预设值和从select查询中获取的值? 例如:

INSERT INTO table1 VALUES ("A string", 5, [int]).
我有一个字符串的值和数字5,但我必须从如下选择中找到[int]值:

SELECT idTable2
FROM table2
WHERE ...
这给了我一个可以放在表1中的id

如何将此语句合并为一条语句?

请尝试以下操作:

INSERT INTO table1 
SELECT 'A string', 5, idTable2 idTable2 FROM table2 WHERE ...
使用插入。。。选择“查询”,并将已知值放入“选择:


只需使用一个子查询,如:

INSERT INTO table1 VALUES ("A string", 5, (SELECT ...)).
试试这个:

INSERT INTO table1 SELECT "A string", 5, idTable2 FROM table2 WHERE ...
请参阅:

试试这个

INSERT INTO TABLE1 (COL1 , COL2,COL3) values
('A STRING' , 5 , (select idTable2 from Table2) )
where ...

所有其他答案都解决了这个问题,我的答案与其他答案的工作方式相同,但从更具教学意义的角度来看,这在MySQL上是有效的。。。不知道其他SQL Server:

INSERT INTO table1 SET 
  stringColumn  = 'A String', 
  numericColumn = 5, 
  selectColumn  = (SELECT idTable2 FROM table2 WHERE ...);

您可以参考MySQL文档:

+1,了解如何在仍然使用VALUES语法的情况下执行此操作的示例。此方法可能会出现错误,如超过1行。应在表1值中插入字符串5,选择。。。限制1。当您只需要将一个表中的一行中的少数值复制到另一个表中的新行时,此解决方案非常有用。我发现这种方法的一个问题是,如果SELECT返回零记录,则语句成功,但没有插入数据。@NeilC.Obremski:Yes,但这只是一个问题,如果你期望结果是其他的。如果您希望在这种情况下出现错误,可以使用子查询。非常感谢,我在互联网上搜索过这一点,那么SELECT表中的多列呢?若我尝试从那个里得到多个列,我得到的操作数应该包含1列。就是这样。对
INSERT INTO table1 (col1, col2)
SELECT "a string", 5, TheNameOfTheFieldInTable2
FROM table2 where ...
INSERT INTO TABLE1 (COL1 , COL2,COL3) values
('A STRING' , 5 , (select idTable2 from Table2) )
where ...
INSERT INTO table1 SET 
  stringColumn  = 'A String', 
  numericColumn = 5, 
  selectColumn  = (SELECT idTable2 FROM table2 WHERE ...);
INSERT INTO table_name1 (id, name, address, contact_number) SELECT id, name, address, contact_number FROM table_name2;