Finde den Fehler in einer langen sql Query nicht

Duergy

Mitglied
Hallo,

ich weiß das hier einige Experten unterwegs sind. Ich habe heute ein Query mitgebracht in der bestimmt nur ein kleiner Fehler ist, aber ich finde ihn leider nicht.

SQL:
SELECT A.suchname, B.id FROM `h_belegung` AS A, `h_rechnungen` AS B 
WHERE A.id=B.buchungid 
AND A.uerid=B.userid 
AND ((monats=11 AND jahrs=2010) OR (monats=12 AND jahrs=2010) OR (monats=1 AND jahrs=2011)) 
AND (SELECT COUNT(*) FROM `h_safe` AS C 
WHERE C.reservierungsnummer=B.id)=0 
GROUP BY B.id 
ORDER BY A.suchname

Wenn ich es im PMA ausführe markiert er mir "COUNT" rot !?
 
Sehe ich richtig? Du willst jede A-B-Paarung die keinen Eintrag in C hat?
Mach es mit LEFT JOIN

Ps: Saubers Formatieren mach SQL lesbar

SQL:
SELECT 
	A.suchname, 
	B.id 
FROM 
	`h_belegung` AS A
	INNER JOIN `h_rechnungen` AS B
		ON 	A.id=B.buchungid AND A.uerid=B.userid 
	LEFT JOIN `h_safe` AS C 
		ON C.reservierungsnummer=B.id
WHERE 
	(
			(monats=11 AND jahrs=2010) 
			OR (monats=12 AND jahrs=2010) 
			OR (monats=1 AND jahrs=2011)
	) 
	AND c.reservierungsnummer IS NULL
GROUP BY 
	B.id 
ORDER BY 
	A.suchname
 
Zuletzt bearbeitet von einem Moderator:
Zurück