De INSERT
verklaring heeft twee varianten:
INSERT INTO tableX
(a, b, c, ...)
VALUES
(1, 2, 3, ...) ;
en
INSERT INTO tableX
(a, b, c, ...)
SELECT
1, 2, 3
FROM
... ; --- the same or another table or many tables
De dual
is een systeemtabel met precies 1 rij. Het kan voor verschillende dingen worden gebruikt. Hier wordt het gebruikt, dus een VALUES (...)
wordt herschreven als een SELECT ...
waar we geen geschikte tabel hebben om in de FROM
. te plaatsen clausule:
$query_land = "INSERT INTO `Sequence` (`num_arr`,`start`,`fin`,`way_id`)
SELECT '".$solution[$i][0]."','".$solution[$i][1]."',
'".$solution[$i][2]."','".$solution[$i][3]."'
FROM dual
WHERE '".$solution[$i][0]."' IN (SELECT num_arr
FROM Schedule
WHERE num_arr<>'')";