PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage an die MySQL-Experten



iGEL
24-03-2002, 23:46
Moin!

Ich muss zugeben, in MySQL habe ich noch nicht so tiefgehende Kenntnisse, da man ja im Normalfall auch nicht viel braucht. Da MySQL aber deutlich mehr machen kann, und ich gerne etwas effizienter programmieren würde, versuche ich gerade, die Anzahl der MySQL-Aufrufe in meinem PHP-Script zu verringern.

Frage 1: Das ist doch effizienter, oder? :)

So, nun bin ich mir aber nicht sicher, ob das, was ich will, überhaupt mit einem Query geht. Ich habe diese 2 Tabellen:


gc_squad:
squad_id | clan_id | leader_id | game_id | name | optionen
1 | 1 | 2 | 1 | "Broodwar Squad" | "blah"
2 | 1 | 1 | 2 | "Dark Age of Camelot Gilde" | "blubb"

gc_user2squad
user_id | squad_id
1 | 1
1 | 2
2 | 1

Die 2. Tabelle stellt also eine Verbindung zwischen (einer hier nicht aufgeführten) Usertabelle und der Squadtabelle her. Ein User kann wie man sieht in mehreren Squads sein. So, jetzt zu meinem Anliegen: ich möchte squad_id, name und optionen aus gc_squad haben, und zwar nur von den Squads, in denen der User mit der user_id 1 ist. Hier mein gescheiteter Versuch:

Die Anfrage war: SELECT squad_id, name, optionen FROM gc_squad WHERE gc_user2squad.user_id=1 AND squad_id=gc_user2squad.squad_id
MySQL-Fehler Nr. 1109: Unknown table 'gc_user2squad' in where clause

Mit 2 Querys ist das kein Problem (erst die IDs von den Squads holen und danach die Daten), ich würde es aber gerne in einem hinkriegen. Die Tabelle gc_user2squad existiert natürlich in der selben Datenbank - daher verstehe ich die Fehlermeldung auch nicht.

Danke schonmal,
Johannes

Sellew
25-03-2002, 07:35
hi,

probiers mal so:

SELECT gc_squad.squad_id, gc_squad.name, gc_squad.optionen FROM gc_squad,gc_user2squad WHERE gc_user2squad.user_id=1 AND gc_squad.squad_id=gc_user2squad.squad_id

dann klappts auch mit der nachbartabelle. :D

die 2. tabelle muss im from mit angegeben werden, sonst funzt es net.

mfg

iGEL
25-03-2002, 17:32
Moin!

Vielen Dank, klappt super :)

Johannes