具有多个嵌套选择的MySQL插入
这样的查询可能吗?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') 当您有这样的子查询时,它必须只返回一列和一行。如果子
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,因为没有它,此查询将无法工作。谢谢!虽然这个问题确实缺少括号,但你的评论很有教育意义!