Hallo
Ich hab hier eine etwas spezielle Abfrage und hoffe das mir evtl. jemand weiter helfen kann.
Erstmal ein paar Infos:
Die Tabelle:
viewer_id, target_id, label, display_id
Als Daten für den Query habe ich mehrere
viewer_id's und target_id's
Gesucht ist label mit display_id in einer ganz speziellen Reihenfolge.
Und zwar habe ich z.b. für viewer_id folgende Werte:
Menge A [ 0, 173, 174, 176 ]
Und für target_id:
Menge B [ 0, 143, 145, 180 ]
Als Ergebnis sollen jetzt die Datensätze geliefert werden, bei denen
die viewer_id in A vorhanden ist, und target_id in B.
Sortiert soll das ganze erst nach der Reihenfolge der Elemente in A, dann nach B.
Was ich bis jetzt habe ist folgendes:
Der Query bringt als Ergebnis schon das was ich möchte, z.b.:
Das Problem ist jetzt, das ich immer nur den ersten Wert für ein label haben möchte. In diesem Fall z.b. ist master, 171 überflüssig da 181 schon vorher vorkommt.
Das perfekte Ergebnis wäre also:
Ich hoffe ich konnte mich zumindest halbwegs verständlich ausdrücken und hoffe irgendwer hat eine Idee dazu!
Viele Grüße und vielen Dank schonmal!
Ich hab hier eine etwas spezielle Abfrage und hoffe das mir evtl. jemand weiter helfen kann.
Erstmal ein paar Infos:
Die Tabelle:
viewer_id, target_id, label, display_id
Als Daten für den Query habe ich mehrere
viewer_id's und target_id's
Gesucht ist label mit display_id in einer ganz speziellen Reihenfolge.
Und zwar habe ich z.b. für viewer_id folgende Werte:
Menge A [ 0, 173, 174, 176 ]
Und für target_id:
Menge B [ 0, 143, 145, 180 ]
Als Ergebnis sollen jetzt die Datensätze geliefert werden, bei denen
die viewer_id in A vorhanden ist, und target_id in B.
Sortiert soll das ganze erst nach der Reihenfolge der Elemente in A, dann nach B.
Was ich bis jetzt habe ist folgendes:
Code:
SELECT `label`, `display_id` FROM `tpl_rel` WHERE `viewer_id` IN ( 0, 173, 174, 176 ) AND `target_id` IN ( 0, 143, 145, 180 ) ORDER BY `viewer_id` = 0, `viewer_id` = 173, `viewer_id` = 174, `viewer_id` = 176, `target_id` = 0, `target_id` = 143, `target_id` = 145, `target_id` = 180
Code:
label, display_id nav 182 master 181 nav 172 master 171 content 178
Das perfekte Ergebnis wäre also:
Code:
label, display_id nav 182 master 181 content 178
Ich hoffe ich konnte mich zumindest halbwegs verständlich ausdrücken und hoffe irgendwer hat eine Idee dazu!
Viele Grüße und vielen Dank schonmal!
Comment