Das INSERT
Anweisung hat zwei Varianten:
INSERT INTO tableX
(a, b, c, ...)
VALUES
(1, 2, 3, ...) ;
und
INSERT INTO tableX
(a, b, c, ...)
SELECT
1, 2, 3
FROM
... ; --- the same or another table or many tables
Das dual
ist eine Systemtabelle mit genau 1 Zeile. Es kann für verschiedene Dinge verwendet werden. Hier wird es also als VALUES (...)
verwendet wird als SELECT ...
umgeschrieben wo wir keine passende Tabelle haben, um sie in FROM
einzufügen Klausel:
$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<>'')";