Problem mit Schleifen ! Kann jemand helfen ?
Hallo,
jetzt funktioniert es. Das Script gibt jetzt auch die richtigen Spiele aus. Aber wie füge ich jetzt die spiele in die tab2
in die Spalte spiele ein ? Kann ich die SELECT Anweisung irgendwie mit REPLACE erweitern oder muss ich da was anderes machen ?
Und meine Tabellen heissen wirklich zur zeit tab1,tab2 und tab3. Aber hierbei handelt es sich natürlich nur um ein Probescript.
Danach benenne ich die Tabellen natürlich professioneller, aber erst muss alles laufen und danach wird der Code noch effizienter
umgeschrieben bzw. gekürzt. Zurück auf meine erste Frage, geht das mit dem REPLACE ? Ciao und danke erstmal für die SELECT Anweisung.
jetzt funktioniert es. Das Script gibt jetzt auch die richtigen Spiele aus. Aber wie füge ich jetzt die spiele in die tab2
in die Spalte spiele ein ? Kann ich die SELECT Anweisung irgendwie mit REPLACE erweitern oder muss ich da was anderes machen ?
Und meine Tabellen heissen wirklich zur zeit tab1,tab2 und tab3. Aber hierbei handelt es sich natürlich nur um ein Probescript.
Danach benenne ich die Tabellen natürlich professioneller, aber erst muss alles laufen und danach wird der Code noch effizienter
umgeschrieben bzw. gekürzt. Zurück auf meine erste Frage, geht das mit dem REPLACE ? Ciao und danke erstmal für die SELECT Anweisung.
Hallo Pyramide,
tut mir ja leid das ich dich die ganze zeit über hier nerve. Aber ich kenne mich nicht mit den Kombinationien in der SQL Anweisung nicht so aus, deshalb habe ich dich gefragt. Ich probiere das immer lange aus, aber es funktioniert nicht so ganz richtig. Tut mir leid, das ist aber das letzt was ich noch im Script brauche. Wenn ich da REPLACE einbaue dann kommt z.B.
tut mir ja leid das ich dich die ganze zeit über hier nerve. Aber ich kenne mich nicht mit den Kombinationien in der SQL Anweisung nicht so aus, deshalb habe ich dich gefragt. Ich probiere das immer lange aus, aber es funktioniert nicht so ganz richtig. Tut mir leid, das ist aber das letzt was ich noch im Script brauche. Wenn ich da REPLACE einbaue dann kommt z.B.
Code: Alles auswählen
Not a unique/Alias 'tab2'
Du darfst also nicht direkt auf tab2 zugreifen, sondern musst einen Alias anlegen (siehe mein Code oder http://www.mysql.com/doc/de/JOIN.html)Pyramide hat geschrieben:Count funktioniert scheinbar nur mit Aliasen
Hi Pyramide,
wie lege ich denn einen Alias an ? AS xy, oder ? Aber warum kommt dann hier keine Fehlermeldung ?:
Und hierbei schon:
Ist den hier nicht der Alias als AS spiele vorhanden ? Oder muss er noch irgendwo rein ?
wie lege ich denn einen Alias an ? AS xy, oder ? Aber warum kommt dann hier keine Fehlermeldung ?:
Code: Alles auswählen
"REPLACE INTO tab2 (team_id, punkte, tore) SELECT '$row[team_a_id]', sum(if(team_a_id='$row[team_a_id]', punkte_a, punkte_b)), sum(if(team_a_id='$row[team_a_id]', tore_a, tore_b)) FROM tab1 WHERE team_a_id='$row[team_a_id]' OR team_b_id='$row[team_a_id]'";
Code: Alles auswählen
"REPLACE INTO tab2 (spiele) SELECT tab2.team_id, count(tab1.spiel_id) AS spiele FROM tab2 LEFT JOIN tab1 ON (tab2.team_id = tab1.team_a_id OR tab2.team_id = tab1.team_b_id) GROUP BY tab2.team_id";
Es geht um den Alias der Tabelle ("SELECT FROM foo" vs. "SELECT FROM foo [AS] f". Warum man das einmal braucht und beim anderen mal nicht kann ich dir auch nicht genau sagen, aber es hat wohl damit zu tun, daß du bei mehreren Tabellen explizit eine "Arbeitskopie" der Tabelle erstellen musst ("a unique"), um sie verwenden zu können, während das bei einer Tabelle automatisch gemacht wird. (Man kann ja auch eine Tabelle zweimal referenzieren - "SELECT FROM foo f1, foo f2")
BTW: Besonders wenn man mit Tabellennamen wie denen von phpBB arbeitet, ist das Anlegen solcher Aliase schon aufgrund der Länge zu empfehlen ("SELECT phpbb_users.username, phpbb_users.user_email, phpbb_users.user_level" vs. "SELECT u.username, u.user_email, u.user_level")
BTW: Besonders wenn man mit Tabellennamen wie denen von phpBB arbeitet, ist das Anlegen solcher Aliase schon aufgrund der Länge zu empfehlen ("SELECT phpbb_users.username, phpbb_users.user_email, phpbb_users.user_level" vs. "SELECT u.username, u.user_email, u.user_level")
Hallo,
das verstehe ich noch nicht ganz. Wo muss den dann der Alias rein ? Hier ist doch einer drin:
Oder nicht ? Und wenn ich nach FROM AS spiele schreibe dann kommt diese Fehlermeldung:
Also darf der Alias nicht in die FORM Anweisung, verstehe ich das richtig ? Aber wo muss denn dann der Alias rein ? Ich habe
den Alias schon überall versucht rein zu schreiben oder umzuschreiben.
das verstehe ich noch nicht ganz. Wo muss den dann der Alias rein ? Hier ist doch einer drin:
Code: Alles auswählen
"REPLACE INTO tab2 (spiele) SELECT tab2.team_id, count(tab1.spiel_id) AS spiele FROM tab2 LEFT JOIN tab1 ON (tab2.team_id = tab1.team_a_id OR tab2.team_id = tab1.team_b_id) GROUP BY tab2.team_id";
Code: Alles auswählen
INSERT TABLE 'tab2' isn't allowed in FROM table list
den Alias schon überall versucht rein zu schreiben oder umzuschreiben.
Du darfst nicht die Tabelle als Quelle verwenden, in die du einfügst. Kannst es ja mal mit ner temporären Tabelle versuchen. (Oder du wartest, bis MySQL UPDATE tab1 SET feld=(SELECT count(*) FROM tab2 WHERE tab2.feld=tab1.feld) unterstütztCondor hat geschrieben:INSERT TABLE 'tab2' isn't allowed in FROM table list
