MYSQL Abfrage über 2 Tabellen.. bitte um Hilfe...

OK jetzt habe ich es:

SELECT *
FROM benutzer AS a
LEFT JOIN events_teilnehmer AS b ON ( a.userid = b.user_id )
WHERE b.event_id <> 2 or b.event_id IS NULL

1 Max Mustermann XXXXXX 1 1 1 1 0
2 Heinz Mustermann XXXXXX 1 2 2 1 0
3 Dieter Mustermann XXXXXX 1 3 3 1 0
4 Martin Mustermann XXXXXX 1 4 4 1 0
5 Gustav Mustermann XXXXXX 1 5 5 1 0
6 Peter Mustermann XXXXXX 1 NULL NULL NULL NULL
7 Guenter Mustermann XXXXXX 1 NULL NULL NULL NULL
8 Laura Mustermann XXXXXX 0 NULL NULL NULL NULL
9 Marianne Mustermann XXXXXX 0 NULL NULL NULL NULL

Ergebnis: Alle User die nicht an event 2 teilnehmen
 
mhhhh also mit meinen tabellen geht das nich so.. da zeigts mir genau die anzahl der user an die in der benutzer stehen...
also ich würde dir jetzt nochmal die beiden kompletten tabellen schicken.. weil ich hatte die gekürzt...
weil wenn ich das mit ca 800 usern mache dann haut das bei mir trotzdem nicht hin..

vllt kannst du es mit den beiden tabellen nochmal probieren?
 
sry war grade mit was anderem dran...

also, habe deine Tabellen importiert und getestet...

Ergebnis:
Showing rows (850 total, Query took 0.0335 sec)


SQL query: SELECT *
FROM benutzer AS a
LEFT JOIN events_teilnehmer AS b ON ( a.userid = b.user_id )
WHERE b.event_id <>2
OR b.event_id IS NULL

Das bedeutet 850 User sind NICHT für Event 2 angemeldet

----------------------------------------------------------------------------------------

Showing rows (25 total, Query took 1.3470 sec)
SQL query: SELECT *
FROM benutzer AS a
LEFT JOIN events_teilnehmer AS b ON ( a.userid = b.user_id )
WHERE b.event_id <>1
OR b.event_id IS NULL

Das bedeutet 25 User sind NICHT für Event 1 angemeldet
 
hmm dabei sind doch 4 teilnehmer dabei die in der teilnehmertabelle stehen die als event die 2 haben... theoretisch müsste das ergebnis ja 846 sein...

aber mal abgesehen davon... ich habe ja parallel selber weiter versucht.. und mir nochmal das left join vorgenommen.. dabei habe ich bemerkt das ich selber eine kleine wissenslücke hatte *g*

ich habe nun folgendes rausbekommen:
SELECT
*
FROM
benutzer as b
LEFT JOIN
events_teilnehmer as e
ON b.userid = e.user_id && e.event_id = '2'
WHERE e.event_id IS NULL


was sagst du/ihr dazu?
kannst es gerne mal ausprobieren...
also das richtige ergebnis von 846 zeigts bei mir an.. bin es mal durchgegangen und rein logisch ist es auch ok...
ich hoffe nun hab ichs.. oder ist ein fehler drin?
 
naja egal.. soweit funktionierts erstmal...

ich danke dir ripkens das du dich geopfert hast und mir bei meiner fehlerbeseitigung unterstützt hast.. :)
vielen dank.

mfg MingdU
 

Neue Beiträge

Zurück