php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.03.2006, 11:34  
Erfahrener Benutzer
 
Registriert seit: 23.12.2004
Beiträge: 255
Riot
Standard gelöst: Abfrage Fehler "Column '...' in field list is a

Hallo,

Die Datenbank soll die Statistiken zum Beispiel der einzelnen Spieler beinhalten.
Hierzu habe ich mehrere Tabellen angelegt.
spieler => enthält alle Namen Spieler
torschuetzen => enthält ID des Spieles selbst und die id der Schützen
und so weiter.
Ich möchte das jetzt ausgegeben wird:
Name :: Tore

Aber bei meiner Abfrage kommt folgender Fehler: "Column 'spieler_id' in field list is ambiguous" ja wie mehrdeutig? Wo liegt mein Fehler?


Code:
SELECT n.name, ts.tore
FROM spieler n
LEFT JOIN (SELECT spieler_id, COUNT(*) AS tore
           FROM torschuetzen
           GROUP BY spieler_id) ts ON ts.spieler_id = n.spieler_id;
__________________
Webdesign - optimized for user
Riot ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.03.2006, 11:43  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

SELECT ts.spieler_id, ...

grüße
axo
axo ist offline   Mit Zitat antworten
Alt 30.03.2006, 11:58  
Erfahrener Benutzer
 
Registriert seit: 23.12.2004
Beiträge: 255
Riot
Standard

Code:
SELECT n.name, ts.tore
FROM spieler n
LEFT JOIN (SELECT ts.spieler_id, COUNT(*) AS tore
           FROM torschuetzen
           GROUP BY ts.spieler_id) ts ON ts.spieler_id = n.spieler_id;
Jetzt kommt der Fehler "Unknown column 'ts.spieler_id' in 'field list'"
__________________
Webdesign - optimized for user
Riot ist offline   Mit Zitat antworten
Alt 30.03.2006, 12:01  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

Code:
SELECT n.name, ts.tore
FROM spieler n
LEFT JOIN (SELECT ts.spieler_id COUNT(*) AS tore
           FROM torschuetzen ts
           GROUP BY ts.spieler_id) ts ON ts.spieler_id = n.spieler_id;
vllt so ?

aso .. schon mal versucht das komische KOMMA dort wegzunehmen ...
M3g4Star ist offline   Mit Zitat antworten
Alt 30.03.2006, 12:21  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Der Befehl wird von innen nach außen (Klammersetzung) interpretiert. Innerhalb ist "ts" noch nicht bekannt, das wird erst außerhalb als ALIAS zugewiesen.

Nehme ich zumindest an, wußte nicht dass die Tabellenangabe bei JOIN durch ein SELECT ersetzt werden darf.
Zergling-new ist offline   Mit Zitat antworten
Alt 30.03.2006, 12:26  
Erfahrener Benutzer
 
Registriert seit: 23.12.2004
Beiträge: 255
Riot
Standard

mit komma fehlermeldung
Code:
Column 'spieler_id' in field list is ambiguous
ohne Komma Fehlermeldung
Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COUNT(*) AS tore
           FROM torschuetzen ts
           GROUP BY ts.spiele' at line 3

@Zergling
Ich bin mySQL-Anfänger, das war nur mein erster jämmerlicher Versuch. Wie sollte ich das sonst Abfragen?
__________________
Webdesign - optimized for user
Riot ist offline   Mit Zitat antworten
Alt 30.03.2006, 12:28  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Bin nicht sicher, aber setz mal vor * den entsprechenden Tabellenname/-alias.
Zergling-new ist offline   Mit Zitat antworten
Alt 30.03.2006, 12:36  
Erfahrener Benutzer
 
Registriert seit: 23.12.2004
Beiträge: 255
Riot
Standard

funktioniert auch nicht.

Später sollen auch noch Gelbe Karten, Rote Karten, Auswechselungen etc dazu kommen. Die Tabellen sind aber alle gleich aufgebaut.
Code:
id :: spiel_id :: spieler_id
__________________
Webdesign - optimized for user
Riot ist offline   Mit Zitat antworten
Alt 30.03.2006, 13:38  
Erfahrener Benutzer
 
Registriert seit: 23.12.2004
Beiträge: 255
Riot
Standard

Hallo,

ich habe es jetzt mal anders probiert, und siehe da, es klappt FAST.

Code:
SELECT s.name, COUNT(torschuetzen.spieler_id) AS tore, COUNT(gelbekarten.spieler_id) AS gk
  FROM spieler s
  INNER JOIN torschuetzen ON s.spieler_id=torschuetzen.spieler_id
  INNER JOIN gelbekarten ON s.spieler_id=gelbekarten.spieler_id
  WHERE s.spieler_id=1
  GROUP BY s.spieler_id;
Jetzt das Problem das die zweite Zählung falsch ist.
Was kommt raus:
Name :: Tore :: Gelbekarten
Franz :: 3 :: 3

Was soll rauskommen
Franz :: 3 :: 1

komischerweise sind hier die gelben karten immer gleich den Toren. Warum?
__________________
Webdesign - optimized for user
Riot ist offline   Mit Zitat antworten
Alt 30.03.2006, 14:51  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.232
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Ist auch logisch, da du zuerst die Spieler nimmst (1 Datensatz), dazu torschuetzen verjoinst (3 Datensätze) und danach gelbekarten verjoinst (immer noch 3 Datensätze).
Mach doch zwei Selects draus.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist gerade online   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Unknown column '...' in 'field list' c-f-g Datenbanken 15 17.06.2005 08:01
Fehlermeldung - aber kein fehler... Tschuu HTML, Usability und Barrierefreiheit 16 14.03.2005 15:56
Fehler abfangen bei MySQL Abfrage Dave Waterstone PHP Tipps 2005 4 21.02.2005 15:15
[Erledigt] Fehler in der MySQL Abfrage Datenbanken 2 07.02.2005 14:28
[Erledigt] Schon wieder Fehler in einer kleinen Abfrage Datenbanken 10 03.02.2005 18:37
Fehler in Abfrage. Datenbanken 8 03.02.2005 14:42
Fehler in SQL Abfrage PHP Tipps 2005 11 31.01.2005 10:20
Fehler bei der MySQL Abfrage PHP Tipps 2005 4 19.01.2005 18:32
Fehler in der MySQL Abfrage Datenbanken 11 19.01.2005 14:38
Fehler bei abfrage, evtl konflikt mit reservierten wörtern? Datenbanken 3 01.12.2004 10:48
finde den fehler nicht bei abfrage PHP Tipps 2004 5 23.09.2004 12:28
Unknown column in 'field list' PHP Tipps 2004 1 18.09.2004 21:54
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
Abfrage: gibt immer Fehler zurück PHP Tipps 2004 4 04.08.2004 14:31
wo steckt der fehler bei der passwort abfrage? PHP Tipps 2004 18 22.06.2004 23:00

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
column \'id\' in field list is ambiguous, in field list is ambiguous, left join column in field list is ambiguous, column: \'id\' in field list is ambiguous, column in field list is ambiguous, colum in field list ambiguous java, abfrage column, mysql column \'id\' in field list is ambiguous, error: column \' \' in field list is ambiguous, id in field list is ambiguous join, unknown column \'zahl\' in \'field list\' java sql, unknown column \'id\' in \'field list mysql, unknown column \'spieler_id\' in \'field list\' mysql, unknown column \'spieler_id\' in \'field list\', \list is ambiguous\ mysql java, unknown column name \count\ field list. field list. field list. field \, error: $abfrage unknown column \'username\' in \'field list\', sql abfrage ambiguous column, column \'passwort\' in field list is ambiguous, column in field list is ambiguous join

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:46 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.