2017-03-06 1 views
0

meine SQL-Abfragemysql Abfrage mit zwei Tabelle explodieren beitreten

SELECT 
    team.id, 
    team.atitle, 
    team.etitle, 
    team.cup_id, 
    team.logo, 
    team.modarb, 
    team.count_id, 
    team.link AS tlink, 
    country.atitle AS name, 
    country.etitle AS ename, 
    cup.id AS catid, 
    cup.link, 
    cup.description, 
    cup.name AS cupname 
    FROM cup LEFT JOIN team ON (cup.id IN (". implode(', ', 'team.cup_id') .")) 
    LEFT JOIN country ON (country.id = team.count_id) 
    where cup.id='5' 

Zeile wie folgt aussehen team.cup_id 5, 4, 3, muss wissen, wie implodieren zu verwenden, in mysql Abfrage

+4

Ich stimme ab, diese Frage als Off-Topic zu schließen, weil es keine Forschung oder Anstrengung in möglichen Lösungen zeigt. – Sebas

+0

Nun, du versuchst dort eine Schnur zu implodieren. Vielleicht möchten Sie dies lesen: http://ca2.php.net/implode – miken32

+0

Sie mischen PHP mit MySQL. Sie sind auf verschiedenen Ausführungsstufen, Sie können sie nicht so zusammenführen. – chris85

Antwort

0

Sie beheben sollten Ihre Datenstruktur, so dass Sie keine Listen von IDs als String speichern. Dies ist falsch, falsch, falsch:

  • Es ist falsch, Zahlen als Zeichenfolgen zu speichern.
  • Es ist falsch, IDs in einer Tabelle ohne ordnungsgemäß deklarierte Fremdschlüsselverweise zu haben.
  • Es ist falsch, Listen in einer einzelnen Spalte zu speichern, wenn SQL eine großartige Methode zum Speichern von Listen bietet: eine Tabelle.

Gerade falls Sie nicht die Datenstruktur beheben, können Sie tun:

FROM cup LEFT JOIN 
    team 
    ON find_in_set(cup.id, team.cup_id) > 0 LEFT JOIN 
    country 
    ON (country.id = team.count_id) 

biete ich dies nur als Notlösung, bis Sie die Daten sein SQLish in Form fixieren.