Заявката е успешна (в противен случай mysql_query()
няма да върне true
), но не вмъква редове. Единственото обяснение за това е, че SELECT
част води до празен набор. Това е така, защото LEFT JOIN
връща редове, които съществуват в t1
но не и в t2
, но изборът се извършва на NULL
редове в t1
.
Това трябва да работи:
INSERT teamshalf
(`yearID` , `lgID` , `teamID` , `Half` ,
`divID` , `DivWin` , `Rank` , `G` , `W` , `L`)
SELECT DISTINCT t1.`yearID` , t1.`lgID` , t1.`teamID` ,
t1.`Half` , t1.`divID` , t1.`DivWin` , t1.`Rank` , t1.`G` , t1.`W` , t1.`L`
FROM `teamshalf_TEMP` t1 LEFT JOIN `teamshalf` t2 ON t1.`yearID` = t2.`yearID`
AND t1.`lgID` = t2.`lgID` AND t1.`teamID` = t2.`teamID`
AND t1.`Half` = t2.`Half` AND t1.`divID` = t2.`divID`
AND t1.`DivWin` = t2.`DivWin` AND t1.`Rank` = t2.`Rank`
AND t1.`G` = t2.`G` AND t1.`W` = t2.`W` AND t1.`L` = t2.`L`
WHERE t2.`yearID` IS NULL
Също така имайте предвид, че mysql_query()
е отхвърлено. И трябва да декларирате колоните, които трябва да съдържат данни като NOT NULL
, така че NULL
няма да бъдат приети. И вашата заявка ще бъде бавна, защото не използвате индекси.