WulfmanGER
Commander
- Registriert
- Juli 2005
- Beiträge
- 2.269
Hallo in die Runde,
ich hab hier ein SELECT mit LEFT OUTER JOIN wo Werte im GROUP_CONCAT nach Tabellen-Info sortiert werden müssen
Tabelle sets:
Tabelle setlinkmovie
Folgende Ausgabe ist dann gewünscht:
Wie man sieht: idMovie ist nicht nach iOrder sortiert. Es sollte so ausschauen: 73956,546,563
Das bisherige SELECT
Das SELECT ist natürlich noch viel größer (entspannte 41 Zeilen ... die SQL-DB stammt von "Ember Media Manager" und möchte ich ein wenig für eigene Zwecke auslesen/weiterverarbeiten - daher kann ich die Tabelle nicht "umbauen" - das SELECT ist von der SQL-VIEW "movielist" - falls jemand auch EMM nutzt)
Ich hatte jetzt versucht ein ORDER einzubauen. Nach dem LEFT OUTER darf ich das nicht - klar - ORDER bezieht sich auf die ganze Abfrage. Jetzt hatte ich gesehen das man in GROUP_CONCAT ein ORDER einsetzen darf. Geht aber überhaupt nicht (vorallem auch sowieso schon falsch, weil ich ja eine anderen Tabelle ansprechen müsste). Vermutlich geht das nur in mySQL nicht in sqlite.
Hab hier nicht wirklich viel Ideen - die Abfrage stammt halt auch nicht von mir. Mein Plan war Ursprünglich das was mit dem SELECT ALLES abgefragt wird, mit 3 SELECTS zu machen - dann hätte ich den Part der hier betroffen ist anders gelöst. Dann hab ich aber diese VIEWS entdeckt und das dort fast alles abgefragt wird was ich brauche und den SELECT dann angepasst - bis auf diese Reihenfolge die falsch ist (ist aber auch im Original schon falsch - ich hab nur keine Ahnung wo das IM Tool genutzt wird - sonst würde ich den Entwickler auf den Fehler hinweisen das ORDER fehlt/falsch ist)
Grüße
ich hab hier ein SELECT mit LEFT OUTER JOIN wo Werte im GROUP_CONCAT nach Tabellen-Info sortiert werden müssen
Tabelle sets:
Code:
idSet
1
2
3
[code]
Tabelle movie:
[code]
idMovie
546
563
73956
Tabelle setlinkmovie
Code:
idSet | idMovie | iOrder
1 | 73956 | 1
1 | 563 | 3
1 | 546 | 2
Folgende Ausgabe ist dann gewünscht:
Code:
idSet | idMovie
1 | 73956,546,563
Wie man sieht: idMovie ist nicht nach iOrder sortiert. Es sollte so ausschauen: 73956,546,563
Das bisherige SELECT
Code:
GROUP_CONCAT(DISTINCT movies.idMovie) AS 'MovieTitles'
...
LEFT OUTER JOIN setlinkmovie AS setlink ON (setlink.idSet = sets.idSet)
LEFT OUTER JOIN movie AS movies ON (movies.idMovie = setlink.idMovie)
Das SELECT ist natürlich noch viel größer (entspannte 41 Zeilen ... die SQL-DB stammt von "Ember Media Manager" und möchte ich ein wenig für eigene Zwecke auslesen/weiterverarbeiten - daher kann ich die Tabelle nicht "umbauen" - das SELECT ist von der SQL-VIEW "movielist" - falls jemand auch EMM nutzt)
Ich hatte jetzt versucht ein ORDER einzubauen. Nach dem LEFT OUTER darf ich das nicht - klar - ORDER bezieht sich auf die ganze Abfrage. Jetzt hatte ich gesehen das man in GROUP_CONCAT ein ORDER einsetzen darf. Geht aber überhaupt nicht (vorallem auch sowieso schon falsch, weil ich ja eine anderen Tabelle ansprechen müsste). Vermutlich geht das nur in mySQL nicht in sqlite.
Hab hier nicht wirklich viel Ideen - die Abfrage stammt halt auch nicht von mir. Mein Plan war Ursprünglich das was mit dem SELECT ALLES abgefragt wird, mit 3 SELECTS zu machen - dann hätte ich den Part der hier betroffen ist anders gelöst. Dann hab ich aber diese VIEWS entdeckt und das dort fast alles abgefragt wird was ich brauche und den SELECT dann angepasst - bis auf diese Reihenfolge die falsch ist (ist aber auch im Original schon falsch - ich hab nur keine Ahnung wo das IM Tool genutzt wird - sonst würde ich den Entwickler auf den Fehler hinweisen das ORDER fehlt/falsch ist)
Grüße