[Gelöst bzw. verworfen] mySQL Abfrage über zwei Tabellen
[Gelöst bzw. verworfen] mySQL Abfrage über zwei Tabellen
Hmm ich komm einfach nicht drauf. Ich habe zwei Tabellen:
1.
user_id | username | user_birthday | userlevel
1 | Gerd | 14357 | 0
2.
user_id | usercars_carname | usercars_birthday
1 | Fastlane | 17436
nun möchte ich aus beiden ein Ergebniss erstellen, das Alphabetisch nach username bzw. usercarsname sortiert ist und zwar nur wenn birthday <> 999999
Also als ergebniss dann:
user_id | username | user_birthday | userlevel | usercars_carname | usercars_birthday
1 | NULL | NULL | NULL | Fastlane | 17436
1 | Gerd | 14357 | 0 | NULL | NULL
wie stelle ich das an?
1.
user_id | username | user_birthday | userlevel
1 | Gerd | 14357 | 0
2.
user_id | usercars_carname | usercars_birthday
1 | Fastlane | 17436
nun möchte ich aus beiden ein Ergebniss erstellen, das Alphabetisch nach username bzw. usercarsname sortiert ist und zwar nur wenn birthday <> 999999
Also als ergebniss dann:
user_id | username | user_birthday | userlevel | usercars_carname | usercars_birthday
1 | NULL | NULL | NULL | Fastlane | 17436
1 | Gerd | 14357 | 0 | NULL | NULL
wie stelle ich das an?
Zuletzt geändert von bgx am 26.02.2007 23:39, insgesamt 1-mal geändert.
Code: Alles auswählen
SELECT u.user_id, u.username, u.user_birthday, u.userlevel, c.usercars_carname, c.usercars_birthday FROM tabelle_1 u, tabelle_2 c WHERE u.user_id = c.user_id AND u.user_birthday <> 99999 ORDERY BY u.username, c.usercars_name;
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Ich schmeiß' alles hin und...
... lasse es liegen
Dank Dir Miriam!
So ähnlich hatte ich es zuerst auch:
Leider schreibt er mir dann kein Null sondern gibt als Ergebnis das aus:
Mit der Abfrage von dir:
bekomme ich als Ergebnis nur:
So ähnlich hatte ich es zuerst auch:
Code: Alles auswählen
SELECT u.user_id, u.username, u.user_birthday, u.user_level, h.usercars_carname, h.usercars_birthday FROM phpbb_users u, phpbb_usercars h WHERE u.user_birthday <> 999999 AND u.user_active=1 AND h.usercars_birthday <> 999999 ORDER BY u.username, h.usercars_carname
Code: Alles auswählen
user_id username user_birthday user_level usercars_carname usercars_birthday
498 -Nadine- 4485 0 Wendy 12840
498 -Nadine- 4485 0 ´Wendy 4632
88 achimtun -5406 0 Wendy 12840
88 achimtun -5406 0 ´Wendy 4632
166 ADI -800 0 Wendy 12840
166 ADI -800 0 ´Wendy 4632
Mit der Abfrage von dir:
Code: Alles auswählen
SELECT u.user_id, u.username, u.user_birthday, u.user_level, h.usercars_carname, h.usercars_birthday FROM phpbb_users u, phpbb_usercars h WHERE u.user_id = h.user_id AND u.user_birthday <> 999999 AND u.user_active=1 AND h.usercars_birthday <> 999999 ORDER BY u.username, h.usercars_carname
Code: Alles auswählen
user_id username user_birthday user_level usercars_carname usercars_birthday
3 alphadog 4632 1 ´Wendy 4632
2 bgx 3787 1 Wendy 12840
- S2B
- Ehemaliges Teammitglied
- Beiträge: 3258
- Registriert: 10.08.2004 22:48
- Wohnort: Aachen
- Kontaktdaten:
Das, was du tun willst, hat imho nichts mit dem Verbinden von zwei Tabellen zu tun, da die Datensätze ja gar nicht miteinander verbunden werden. Warum willst du denn das ganze mit NULL-Feldern ausgeben lassen? Damit ein Benutzer mehrere Autos haben kann?
Wenn ja:
Wenn ja:
Code: Alles auswählen
SELECT u.user_id, u.username, u.user_birthday, u.user_level, h.usercars_carname, h.usercars_birthday
FROM phpbb_users u
INNER JOIN phpbb_usercars h
ON h.usercars_birthday <> 999999
WHERE u.user_birthday <> 999999
AND u.user_active=1
ORDER BY u.username, h.usercars_carname
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Dank Dir S2B aber leider bekomme ich als Ergebnis dann:
... was leider auch nicht stimmt.
Der Grund, warum ich es so haben will ist, das ich den Birthday Mod schon am laufen habe und ich nun über den usercarsmod zusätzliche geburtstage pro mitglied habe, die ich gerne in den Birthdaymod integrieren möchte. (Ich weiß das es schwierig ist und das es schon ein paar andere versucht haben, aber man kanns ja mal versuchen. Interesse wenn es klappt ist sicherlich da.
)
Ich habe jetzt das versucht:
Das sieht schon mal nicht schlecht aus:
ist aber immer noch nicht ganz das was ich brauche.
Code: Alles auswählen
user_id username user_birthday user_level usercars_carname usercars_birthday
498 -Nadine- 4485 0 Wendy 12840
498 -Nadine- 4485 0 ´Wendy 4632
88 achimtun -5406 0 Wendy 12840
88 achimtun -5406 0 ´Wendy 4632
166 ADI -800 0 Wendy 12840
166 ADI -800 0 ´Wendy 4632
Der Grund, warum ich es so haben will ist, das ich den Birthday Mod schon am laufen habe und ich nun über den usercarsmod zusätzliche geburtstage pro mitglied habe, die ich gerne in den Birthdaymod integrieren möchte. (Ich weiß das es schwierig ist und das es schon ein paar andere versucht haben, aber man kanns ja mal versuchen. Interesse wenn es klappt ist sicherlich da.

Ich habe jetzt das versucht:
Code: Alles auswählen
SELECT phpbb_users.user_id, phpbb_users.username as 'name', phpbb_users.user_birthday as 'birthday', phpbb_users.user_level, phpbb_usercars.usercars_carname as 'name', phpbb_usercars.usercars_birthday as 'birthday' FROM phpbb_users left join phpbb_usercars on (phpbb_usercars.user_id=phpbb_users.user_id) WHERE phpbb_users.user_birthday <> 999999 AND phpbb_users.user_active=1 ORDER BY 'name'
Code: Alles auswählen
user_id name birthday user_level name birthday
498 -Nadine- 4485 0 NULL NULL
88 achimtun -5406 0 NULL NULL
166 ADI -800 0 NULL NULL
3 alphadog 4632 1 ´Wendy 4632
32 AmBullDusty 2463 2 NULL NULL
2 bgx 3787 1 Wendy 12840

So hab ich ja nachher als Ergebnis:
ADI (25), Alphadog (23), Wendy (5), AmBullDusty (24), ....
hätte es gern so gehabt:
ADI (25), Alphadog (23), AmBullDusty (24), Wendy (5), ....
Man das ist auch nicht grad leicht mehrere Geburtstage pro User über den Birthdaymod laufen zu lassen
