Hi On Thu, Apr 28, 2016 at 05:50:42PM +0200, Tristan AURIOL wrote: > Hi everyone, > > I have a big problem with my application. > My application execute this request : > > INSERT INTO `mydb`.`service_request` ( `id_z`, `id_app`, `request_time`, > `priority` ) > ( SELECT sc.`id_z`, sc.`id_app`, NOW(), 0 > FROM `mydb`.`service_connection` sc > JOIN `mydb`.`service` s ON ( s.`id_service` = sc.`id_service` ) > WHERE 1=1 > AND sc.`id_app` = _utf8'afr' > AND s.`status` = 'available' > AND ( sc.`last_synchronized_time` < SUBDATE( NOW(), INTERVAL 600 SECOND ) > OR sc.`last_synchronized_time` IS NULL ) > AND sc.`nb_errors` < 2 > AND sc.`id_z` NOT IN ( > SELECT sr.`id_z` > FROM `mydb`.`service_request` sr > WHERE sr.`id_app` = _utf8'afr' > AND sr.`status` IN ( 'waiting thu', 'waiting sez', 'in progress' > ) > ) > ) ; > > This request works well into MySQL 5.6.25-1~dotdeb+7.1 but when I run into > 10.1.11-MariaDB-1~jessie-log I have this error: > ERROR 1242 (21000): Subquery returns more than 1 row > > Do you have an idea?
One thing that springs to mind is the brackets... INSERT INTO table(column,column) ( SELECT ...) seems to imply that you only expect one row? Syntactially, the bracketed select can be interpreted as a single tuple... It is arguably ambiguous... I'd be inclined to try it without the brackets around the SELECT...: INSERT INTO table(column,column) SELECT ... Hope this helps -- Karl E. Jorgensen _______________________________________________ Mailing list: https://launchpad.net/~maria-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp

