dedlfix: ich brauch dich nochmal bitte

Beitrag lesen

Tach!

ich habe die Antwort wie ich das lösen könnte in einfachster Form zumindest so verstanden, dass ich mehrere Querys erstellen soll, da wenn ich Group by und dann selectiere es fraglich wäre ob ich das Problem so erschlagen könnte.

Ja, es ist eher unwahrscheinlich, auf alle Fälle unverlässlich, wenn du das mit Group By zu lösen versuchst. Es ist auch dann weiterhin unverlässlich, wenn in Tests genau die gewünschten Daten zu Tage gefördert werden.

Ich stutze gerade wirklich. Es wundert mich sehr das ein Datenbanksystem gleich so fix an seine Grenzen kommt. Ich vemite mal mein Problem was ich hier lösen möchte haben kommt doch recht häufig vor das man Daten aus mehreren tabellen joint und die Ergebnis-Mengen unterschiedlich sind die man dann filtern oder limitieren müsste.

An dem Prinzip sind schon viele vor dir hängengeblieben. Manchmal lässt sich eine für den jeweiligen Anwendungsfall andere brauchbare Lösung finden, manchmal nur eine umständlichere.

  1. eregebnisarray_1 = select * from motherplan mit den beiden left-joins von breederinfo und borntype sowie den beiden left_joins mit den subselects; // wieso mit den subselects ?? ganz einfach, ich brauche die keys in den array-feldern, siehe weiter unten

Die Subquerys liefern keine brauchbare Datenmenge. 6 sind zu viel, 1 ist zu wenig. Ob der dann bei einem der drei motherplan-Datensätzen schon verjoint ist oder nicht, macht das Kraut nicht fett. Die 6 beeinflussen die Ergebnismenge ungünstig, der eine ändert nichts grundsätzliches an ihr. Du kannst die Subquerys hier bedenkenlos weglassen. (Die anderen beiden einfachen Joins bleiben aber.)

  1. Schleife, laufe das ganze ergebnisarray_1 durch

Der Teil sieht prinzipiell gut aus.

ich möchte also die erste db-abfrage mit den left-joins und auch mit den subselectsso lassen wie er ist damit ich die keys bekomme... auch wenn deren Werte dann leer sind.

Welche Keys eigentlich genau? Die motherplan-IDs sind ja schon in eregebnisarray_1 enthalten, auch ohne die Subquerys. Den Key des einen Subquery-Datensatzes brauchst du auch nicht mehr, denn den bekommst du ja im Zuge der Schleife sowieso in erreagbinsarray_2 geliefert.

Ist so ok?

Von meiner Seite her ja (inklusive Anmerkungen zu den Subquerys).

Gute Lösung oder gibts was eleganteres?

Zumindest zielführend ist sie und was anderes außer Stored Procedure ist mir auch nicht weiter eingefallen.

dedlfix.