De query is succesvol (anders mysql_query()
zou true
niet retourneren ) maar er worden geen rijen ingevoegd. De enige verklaring daarvoor is dat de SELECT
deel resulteert in een lege set. Dat komt omdat de LEFT JOIN
retourneert rijen die bestaan in t1
maar niet in t2
, maar de selectie gebeurt op NULL
rijen in t1
.
Dit zou moeten werken:
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
Merk ook op dat mysql_query()
wordt afgeraden. En u moet kolommen die gegevens moeten bevatten declareren als NOT NULL
, dus NULL
zal niet worden geaccepteerd. En uw zoekopdracht zal traag zijn, omdat u geen indexen gebruikt.