select statement inside insert statement in sql returns multiple rows
I have a following structured query in mysql. But its returning a error. Basically, I want to get value from existing table and instert into new table. I tried the following, but got error;
INSERT INTO `table1`(
`first`,`second`,`third`) VALUES(
(SELECT table2.timemodified FROM `xtable` AS table2,`ytable` AS table3
WHERE table3.id = table2.contextid),
(SELECT table4.id FROM `ztable` AS table4,`ytable` AS table3 WHERE table4.id = table3.instanceid),
(SELECT murs.id FROM `table5` AS murs,
`xtable` AS table2,
`wtable` AS table6,
`ytable` AS table3,
`vtable` AS table7
WHERE murs.id = table2.userid AND table6.id = table2.roleid AND table3.id = table2.contextid AND table7.instance = table3.instanceid AND table6.id =3)
);
I tested but the error is : #1242 - Subquery returns more than 1 row
. The problem is I am getting more than single record from the select
query inside insert
. How can I remove such error.
the total query looks something like below. where you have so replace the * with column names you want to select!
INSERT INTO table1(first,second,third)
-- replace * with columns name first,second,third
select * from (
-- START YOU'RE select query
(SELECT table2.timemodified FROM `xtable` AS table2,`ytable` AS table3
WHERE table3.id = table2.contextid),
(SELECT table4.id FROM `ztable` AS table4,`ytable` AS table3 WHERE table4.id = table3.instanceid),
(SELECT murs.id FROM `table5` AS murs,
`xtable` AS table2,
`wtable` AS table6,
`ytable` AS table3,
`vtable` AS table7
WHERE murs.id = table2.userid AND table6.id = table2.roleid AND table3.id = table2.contextid AND table7.instance = table3.instanceid AND table6.id =3)
-- END YOU'RE select query
)
I moved you're select statements into a subquery so you can use the total result of the subquerys to you're advantage.
链接地址: http://www.djcxy.com/p/16884.html上一篇: 如何选择SQL数据库表中的第n行?
下一篇: 在sql语句中insert语句返回多行