Kombinieren Ich lese die Frage Combine multiple rows into one row MySQL, die zeigt, wie aus mehreren Zeilen einer SELECT Anweisung ein Ergebnis mit einer einzigen Zeile. Die SQL Fiddle with Demo läuft auch gut. In dieser Frage gibt es zwei Tabellen: t1 und t2. Mein Problem hat drei Tabellen, die ich für diese Frage vereinfacht:Mehrere Zeilen von drei Tabellen zu einer Zeile in MySQL
Tabelle Sprachen:
ID INT(11) NOT NULL PRIMARY_KEY
name VARCHAR(255) NOT NULL UNIQUE
Tabelle languages_have_persons:
Languages_ID INT(11) NOT NULL PRIMARY_KEY
Persons_ID INT(11) NOT NULL
Tabelle Personen:
ID INT(11) NOT NULL PRIMARY_KEY
firstName VARCHAR(255) NOT NULL
lastName VARCHAR(255) NOT NULL
Was ich tun möchte, ist, diese Tabellen ähnlich zu kombinieren, aber ich versäume es jetzt seit mehreren Stunden. Hier ist mein letzter Versuch:
SELECT p1.ID
, p1.firstName
, p1.lastName
CONCAT_WS(', '
, l2de.name
, l2en.name
)
FROM
languages_have_persons AS lp, persons AS p1
LEFT JOIN languages AS l2de ON
l2de.ID = 4 -- German
LEFT JOIN languages AS l2en ON
l2en.ID = 5 -- English
WHERE p1.ID = lp.Persons_ID
ORDER BY lastName, firstName;
Die Fehlermeldung lautet:
Fehler
SQL-Befehl: Dokumentation
SELECT p1.ID AS ID
, p1.firstName AS firstName
, p1.lastName AS lastName
CONCAT_WS(', '
, l2de.name
, l2en.name
)
FROM
languages_have_persons AS lp, persons AS p1
LEFT JOIN languages AS l2de ON
l2de.ID = 4 LEFT JOIN languages AS l2en ON
l2en.ID = 5 WHERE p1.ID = lp.Persons_ID
ORDER BY lastName, firstName LIMIT 0, 25
MySQL meldet: Dokumentation
#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch
nachschlagen bei '(', '
, l2de.name
, l2en.name
)
FROM
languages_have_persons AS lp, ' in Zeile 4
ich auch andere Wege versucht, aber keiner hatte die richtige Syntax. Was ich als Ergebnis wollen, ist wie folgt:
Tabelle Sprache:
ID name
4 German
5 English
Tabelle language_have_persons:
Languages_ID Persons_ID
4 2
5 1
5 2
Tabelle Personen:
ID firstName lastName
1 Joe Frazier
2 Arnold Schwarzenegger
Was ich von der richtigen Anweisung SELECT erwarten ist so etwas wie
firstName lastName CONCAT_WS(…
Joe Frazier English
Arnold Schwarzenegger German, English
Haben Sie den Fehler in der SQL-Syntax oben sehen? Wenn nicht, weißt du, wie man es löst?
Vielen Dank für Ihre Hilfe!
Sie müssen vor 'CONCAT_WS' ein Komma hinzufügen. – GhostGambler
Vielen Dank! Das war es, aber ich konnte es nicht sehen und versuchte viele falsche Aussagen. – Sae1962
Der Hauptpunkt der Formatierung von Abfragen auf diese Weise ist genau diese Art von Fehler zu vermeiden - so gut gemacht !!! – Strawberry