2016-10-22 3 views
1

Ich hoffe, jemand kann mir mit einer mysql-Anweisung helfen. Am Ende brauche ich es zum Beispiel so: (wird json später verschlüsselt).Mysql Abfrage für mehrere Werte für die gleiche ID

{"meta_value": "Breitensteinstr 82031"} //street and plz

{"meta_value": "Danziger Str 65307"} //street and plz

{"meta_value": "71032"} //no street on this one

ich die einzigen Werte, indem Sie

SELECT meta_value FROM `stroma_commentmeta` WHERE meta_key = 'plz' or meta_key = 'street'; 

jetzt bekommen kann, aber ich bin fest.

Wie kann ich beide Werte für die gleiche comment_id in der gleichen Tabelle erhalten? Mein Gehirn kann die Verbindungen nicht bekommen.

Bildschirm des DB:

enter image description here

+0

die 'comment_id' an die' WHERE' Klausel mit einem 'und' hinzufügen und eine Unterabfrage. –

+0

Ihre Frage ergibt keinen Sinn. Die von Ihnen gewünschte Beispielausgabe zeigt nur den Schlüssel meta_value, der die Schlüssel enthält. Aber du kennst die Schlüssel schon. Ich bin sicher, das ist ein Fehler in der Frage, aber es hilft, die Frage richtig zu stellen, wenn du Hilfe brauchst. –

+0

Sie haben auch nie erwähnt, "welche" ID; Sie haben 2 Spalten mit dem Präfix. Sie haben unten eine Antwort, fragen Sie sie, ob Sie nicht auf Kommentare antworten oder einfach irgendwo "abhauen". Ich habe dir schon gesagt, was zu tun ist. –

Antwort

0
SELECT group_concat( 
     meta_value 
     ORDER BY 
     meta_key DESC 
     SEPARATOR " " ) as meta_value 
    FROM `stroma_commentmeta` 
    WHERE meta_key = 'plz' or meta_key = 'street' 
    GROUP BY comment_id ; 

dies kommt mit einigen Einschränkungen:

http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_group-concat

alternativ sie nur miteinander verbinden ...

SELECT straight_join concat(s.meta_value, " " , p.meta_value ) as meta_value 
FROM `stroma_commentmeta` p 
JOIN `stroma_commentmeta` s on s.comment_id=p.comment_id and s.meta_key = 'street' 
    WHERE p.meta_key = 'plz' ; 
+0

Es funktioniert! Danke vielmals! Jetzt muss ich es verstehen ... – Timo

+0

froh, dass es hepled, welche Sie verwendet? .. die zweite sollte schneller sein, die erste ist etwas zu zeigen;) und lernen neue mysql features –

+0

Ich habe die erste, die zweite war nicht einmal da, wenn ich es versuchte. Ich bin neidisch auf euch Leute, die diese SQL-Abfragen innerhalb von Minuten auswendig können. Danke noch einmal. – Timo

Verwandte Themen