selfmade01: Inner Join mit subselect und Limit?

Beitrag lesen

Hall0,

sorry erstmal für die falsche Überschrift. Aus meinem Frust heraus bin ich ganz durcheinander :(

Dieser eine Datensatz hat eine von den drei motherPlanIds. Von den anderen beiden ist kein Datensatz in der Ergebnismenge. Da kann dann auch keiner mit den anderen Ergebnismengen gejoint werden.

Bin mir jetzt nicht sicher ob ich das richtig erklärt habe da ich Deiner Erklärung nicht ganz folgen kann Deshalb hier kurz anhand eines Beispiels wie die Tabellen aussehen (ich schreibe nicht alle Felder, damit es etwas übersichtlicher wird)

MotherPlan: motherPlanId      motherPlanName       startborn ------------ breederInfoId   bornType 1                 Testname             2014-08-01 20:30:00        1            1 2                 Testname2            2014-09-01 20:30:00        1            1 3                 Testname3            2014-10-01 20:30:00        2            1

breederInfo: breederInfoId   breeder 1               Heinzmann 2               Neumann

bornType: bornTypeId       bornyTpe 1                natural

images: imageId      imageForm      imageTitle         motherPlanId    imageCreateDate 1             jpg            Geburt Tag 1        1             2014-10-01 20:30:00 2             jpg            Geburt Tag 3        1             2014-11-01 20:30:00 3             jpg            Geburt Tag 1        2             2014-10-11 20:31:00 4             jpg            Geburt Tag 5        2             2014-12-01 20:30:00 5             jpg            Geburt Tag 1        3             2015-01-01 03:30:00 6             jpg            Geburt Tag 2        3             2015-01-01 04:30:00

information: informationId  information   informationTitle  createDateTime      motherPlanId 1              Testinfo 1     Testtitel 1      2014-10-01 20:30:00   1 2              Testinfo 1     Testtitel 1      2014-11-11 20:30:00   1 3              Testinfo 1     Testtitel 1      2014-09-01 20:33:00   2 4              Testinfo 1     Testtitel 1      2014-10-01 20:37:00   2 5              Testinfo 1     Testtitel 1      2014-12-01 20:30:00   3 6              Testinfo 1     Testtitel 1      2014-12-09 20:33:00   3

Wie zu sehen ist, ist die Hauptabelle die motherPlan, davon benötige ich jeden Datensatz. In den beiden Tabellen breederInfo und borntype, kann es maximal nur einen zugehörigen Datensatz für die motherPlan geben oder eben keinen deswegen der normale Left Join damit alle Datensätze der motherplan auch ausgegeben werden. die anderen beiden tabellen images und informations können jedoch mehrere zugehörige Datensätze für die motherPlan haben oder auch keinen. Damit jedoch nur soviele Zeilen ausgegeben werden wie Datensätze in der Motherplan vorhanden sind, muss ich die Ergebnismenge aus images und information mit LIMIT 1 belegen. Damit ich das kontrollieren kann, sortiere ich die Datensätze aus images und information zuvor noch.

Wurde es jetzt transparenter?

das müsste doch mit Left-Joins gehenoder? Wenn nicht müsste es doch eine andere simple Möglichkeit geben

Grüße Jürgen