Mysql statt NOT IN, LEFT JOIN verwenden

kramoo

Mitglied
Schaffe es nicht nach langem probieren statt NOT IN die Abfrage mit einem LEFT JOIN zu verwenden.

Code:
SELECT * FROM avz WHERE avz NOT IN (SELECT linkartinfos FROM backlink WHERE linkart = 'avz' AND projektid = '$projektid'

Kann mir jemand helfen und aus der Abfrage eine Abfrage mit LEFT JOIN machen?
 
Warum auch immer der NOT IN nicht gut genug ist

SQL:
SELECT
	avz.*
FROM
	avz
	LEFT JOIN (
		SELECT 
			linkartinfos 
		FROM 
			backlink 
		WHERE 
			linkart = 'avz' 
			AND projektid = '$projektid'
		) S bl
		ON avz.avz = bl.inkartinfos
WHERE		
	bl.inkartinfos IS NULL
 
Zuletzt bearbeitet von einem Moderator:
Waren noch fehler im Code.

Code:
SELECT a . *
FROM avz a
LEFT JOIN (

SELECT linkartinfos
FROM backlink b
WHERE b.linkart = 'avz'
AND b.projektid =15
)b ON a.avz = b.linkartinfos
WHERE b.linkartinfos IS NULL
müsste so stimmen.

Der grund ist die Performance.
0,8s für NOT IN
0,02s mit LEFT JOIN
und die Datenbank wird noch um einiges größer.
 
Zurück