PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere Joins und dann ein Fehler



mastermix
01.09.2008, 12:49
Hi,
ich versuche gerade die Abfrage für die ForcedBanner zu erweitern, weil ich noch eine zusätzliche Blacklist für jeden User eingefügt habe.

Ich möchte also die eigentliche gebuchte Werbung mit den normalen Reloads und meiner Blacklist zusammenbringen und wenn die Werbung noch in keiner der beiden letzteren Tabellen steht dann ausgeben.

Hier mein Code:

db_query ('SELECT t1.*
FROM '.$db_prefix.'_gebuchte_werbung t1
LEFT JOIN '.$db_prefix.'_reloads t2
ON (t1.tan = t2.tan AND (t2.uid = '.$_SESSION['uid'].' OR t2.ip = "'.$ip.'") AND t2.bis >= '.time().')
LEFT JOIN '.$db_prefix.'_user_bflist t3
ON (t1.tan = t3.tan AND (t3.uid = '.$_SESSION['uid'].')
WHERE t2.tan IS NULL AND t3.tan IS NULL AND t1.werbeart = "forcedbanner" AND t1.menge > 0 AND t1.status = 1 AND t1.verdienst > 0 AND t1.sponsor != '.$_SESSION['uid'].' ORDER BY t1.verdienst DESC LIMIT '.$usr['max_forced'].'');Daraufhin kommt volgender Fehler:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (t2.tan IS NULL AND t3.tan IS NULL) AND t1.werbeart = "fo
Kann man das denn so nicht machen? Wo ist da der Fehler? Ich habe MySQL 4.0.24 drauf, falls das relevant ist.

Danke schonmal für euere Hilfe :)

eRaaaa
01.09.2008, 14:50
hi,

also erstmal is da ne klammer zu viel / zu wenig:


ON (t1.tan = t3.tan AND (t3.uid = '.$_SESSION['uid'].')

zu


ON (t1.tan = t3.tan AND t3.uid = '.$_SESSION['uid'].')


bin mir zwar nicht sicher, aber eig. müsste es dann gehen ?!?!

mastermix
01.09.2008, 15:02
Ja, danke, das ist es gewesen. Klar, so funktioniert es ja auch nich. Hab die halt voll übersehen die Klammer. Wenn man das zu oft liest, schaut man da einfach drüber weg. Jetzt geht das.
Danke