这在sql中是可能的吗?

这在sql中是可能的吗?,sql,mysql,insert,Sql,Mysql,Insert,是否可以这样做: INSERT INTO table(col1, col2) VALUES(something_from_another_table, value); 用另一个表中的某个东西作为SQL命令?比如,我能做些什么,等同于: INSERT INTO table(col1, col2) VALUES((SELECT value FROM table2 WHERE id = 3), value); 看一看例子 我建议首先阅读的完整语法和SQL命令。然后扩展到和 慢慢来,找出例子。是的

是否可以这样做:

INSERT INTO table(col1, col2) VALUES(something_from_another_table, value);
用另一个表中的某个东西作为SQL命令?比如,我能做些什么,等同于:

INSERT INTO table(col1, col2) VALUES((SELECT value FROM table2 WHERE id = 3), value);

看一看例子

我建议首先阅读的完整语法和SQL命令。然后扩展到和

慢慢来,找出例子。

是的

INSERT INTO table(col1, col2) 
SELECT value1, 'value2' FROM table2 WHERE id = 3
其中,value1是“其他表”中的值,value2是包含在select语句中的常量。

尝试以下操作:

INSERT INTO table(col1, col2) 
SELECT table2.value1, value2 FROM table2 WHERE table2.id = 3;

你当然可以。其工作原理应与下面的示例类似

INSERT INTO Store_Information (store_name, Sales, Date)
(SELECT store_name, Sales, Date FROM Sales_Information WHERE Year(Date) = 2010)
INSERT INTO Store_Information (store_name, Sales, Date)
(SELECT store_name, Sales, Date FROM Sales_Information WHERE Year(Date) = 2010)

当您在insert语句中指定关键字“Values”时,您正在尝试只插入一个值。当前的方法是将“something\u from\u other\u table”的值赋给一个变量,然后进行插入

DECLARE @ANYVALUE AS VARCHAR(40)
SELECT @ANYVALUE = ANYFIELD FROM table2 WHERE id = 3
INSERT INTO table1 (FIELD1, FIELD2) VALUES(@ANYVALUE, VALUE2)
以这种方式,将始终插入一条记录。另一种正确的方法将插入n条记录作为where语句可以筛选的内容