moin,
SELECT member_id, member_class_id, member_name, member_rank_id,user_id as eqdkp_id, first_name, last_name, icq, skype, msn, irq, gender, birthday, username
FROM eqdkp_members ra, eqdkp_users r
WHERE ra.member_name=r.username
du benutzt die implizite join schreibweise, mein rat, nimm immer die explizite sprich:
SELECT spalten...
FROM eqdkp_members ra
INNER JOIN eqdkp_users r ON ra.member_name=r.username
;
der grund dafür ist einfach, man kann viel schneller sehen, wie die tabellen miteinander verbunden sind und auch, ob eine JOIN bedingung fehlt, sprich es ist viel besser zu lesen und verhindert somit möglilche fehlerquellen.
Das nutze ich um aus 2 Tabellen eine zu machen, jedoch sollen da noch 3 andere Tabellen hinzu wo aber dann vorher für jede zeile eine Summe gerechnet werden muss
es ist auch immer gut, dass man die gleiche fachliche sprache verwendet. man macht nicht wirklich aus 2 tabellen eine. das ergebnis bei SQL abfragen ist immer eine tabelle, egal wieviele tabellen du wie miteinander verknüpfst, es gibt immer nur ein resultset.
die Spalte WERT als Summe dann an die erste Tabelle anfügen zu der richtigen Zuordnung (in dem Fall der Name)
und da wird nichts angefügt an eine tabelle, die bleiben so wie sie sind. was du willst ist eine weitere spalte in der ausgabe der ergebnistabelle. und das machst du am besten mit einer korrelierten unterabfrage.
meine Frage ist jetzt, wie muss ich das verschachteln um die Summe-Tabellen in die erste Tabelle zu importieren... das es mit JOIN wohl gemacht wird konnte ich bissher erlesen, aber wieso das bei mir nicht funzt weiß ich nicht, das problem sind da wohl auch die doppelten spaltennamen
erstens wird dabei nichts importiert, zweitens sind joins nicht immer die richtige lösung. und wenn du schon alias namen für die jeweiligen tabellen benutzt, dann nutze sie auch bei jeder spalte, die du angibst, egal ob in der where klausel, bei der ausgabe, etc.
SELECT ra.*, r.*,
(SELECT SUM(r2.Wert)
FROM eqdkp_raids r2
WHERE r2.name = ra.member_name -- hier spaltennamen pruefen
) Meine_Summe
FROM eqdkp_members ra
INNER JOIN eqdkp_users r ON ra.member_name=r.username
;
die spaltennamen in der korrelation musst du noch mal überprüfen, ich habe da geraten, weil du keine genauen angaben der drei tabellen geliefert hast mit beispieldaten.
Ilja