Mahlzeit ingobar,
"SELECT *" ist selten eine gute Idee. Zum einen belastet man die Datenbank damit, *alle* Spalten herauszusuchen und zu übertragen, obwohl man in den seltensten Fällen wirklich alle braucht, zum anderen hat man mit "SELECT *" spätestens dann Spaß, wenn man Gruppierungs- und Aggregatsfunktionen benutzen will ...
Er hatte doch gar nicht gesagt, was er will, oder?
Richtig, das hatte er nicht. Deswegen war ich auch nicht so vermessen, ihm eine Abfrage vorzuschlagen, die vielleicht gar nicht seine Anforderungen erfüllt.
Was aber hat das damit zu tun, dass "SELECT *" selten eine gute Idee ist?
Implizite JOINs sind ebensowenig eine gute Idee. Sie erschweren die Lesbarkeit und ...
Was würdest du empfehlen? Bei mir genügt das immer.
Als Alternative? Explizite JOINs natürlich. Im Falle Deines Beispiels würde das dann ungefähr so aussehen:
SELECT vu.foo
, vu.bar
, vfu.baz
, vfu.quz
FROM vip_users AS vu
JOIN vipforum_users AS vfu ON vu.user_name = vfu.username
So ist klar erkennbar, welche Tabellen wie über welche Spalten verknüpft werden ... und die WHERE-Klausel dient einzig und allein der Einschränkung der Datenmenge. In meinen Augen ist das erheblich übersichtlicher.
Als Lektüre dazu würde ich Dir "Einführung in Joins" empfehlen.
Wie willst du das sonst lösen?
s.o.
BTW: wieso antwortest Du *mir*?
Ich wollte einfach die Diskussion weiterführen. Ich selbst finde es immer ein bisschen schwierig, wenn die Anworten sich über mehrere Pfade aufspalten, da das das durchklicken im Nachhinein erschwert.
Dies hier ist ein Forum, kein Board. Aus jedem Beitrag können sich theoretisch mehrere einzelne Diskussionsfäden ergeben - und das ist auch sinnvoll und so gewollt: in jedem dieser Stränge werden evtl. ganz unterschiedliche Aspekte behandelt. Es ist daher keine gute Idee, mit seinem eigenen Beitrag einfach auf den letzten/neuesten Beitrag zu antworten und darin dann aber auf einen oder diverse andere Beiträge Bezug zu nehmen.
MfG,
EKKi
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|