具有多个嵌套选择的MySQL插入

具有多个嵌套选择的MySQL插入,sql,select,insert,nested,Sql,Select,Insert,Nested,这样的查询可能吗?MySQL给了我一个语法错误。具有嵌套选择的多个插入值 INSERT INTO pv_indices_fields (index_id, veld_id) VALUES ('1', SELECT id FROM pv_fields WHERE col1='76' AND col2='val1'), ('1', SELECT id FROM pv_fields WHERE col1='76' AND col2='val2') 当您有这样的子查询时,它必须只返回一列和一行。如果子

这样的查询可能吗?MySQL给了我一个语法错误。具有嵌套选择的多个插入值

INSERT INTO pv_indices_fields (index_id, veld_id)
VALUES
('1', SELECT id FROM pv_fields WHERE col1='76' AND col2='val1'),
('1', SELECT id FROM pv_fields WHERE col1='76' AND col2='val2')

当您有这样的子查询时,它必须只返回一列和一行。如果子查询只返回一行,那么@Thor84no注意到需要在它们周围加括号

如果它们返回或可能返回多行,请尝试以下操作:

INSERT INTO pv_indices_fields (index_id, veld_id)   
   SELECT '1', id 
   FROM pv_fields 
   WHERE col1='76' 
   AND col2 IN ('val1', 'val2')
或者,如果您的条件非常不同:

INSERT INTO pv_indices_fields (index_id, veld_id)
    ( SELECT '1', id FROM pv_fields WHERE col1='76' AND col2='val1' )
  UNION ALL
    ( SELECT '1', id FROM pv_fields WHERE col1='76' AND col2='val2' )

我刚刚测试了以下几种有效方法:

插入测试id1,id2值1,从测试2中选择maxid,从测试2中选择maxid


我想问题是,您的选择周围没有s,因为没有它,此查询将无法工作。

谢谢!虽然这个问题确实缺少括号,但你的评论很有教育意义!