sunny: SQL-Abfrage aus vielen Tables zur Ausgabe einer einzigen Tabelle

Beitrag lesen

Hallo!

Also zum leichteren Verständnis hier mal ein Auszug des DB-Designs:

leichter verständlich wären ein paar Beispieldaten und die richtigen Tabellen- und Spaltennamen, damit man sich darunter etwas vorstellen kann ...
... statt bis zur Unkenntlichkeit und Unverständlichkeit verstümmelter Angaben.

Okay, ich dachte eigentlich, dass es verkürzt einfacher zu verstehen wäre als wenn ich die Gesamtstruktur hier einfach reinklatsche.
Aber dann mal das vollständige DB-Design:

---------------
Groups
---------------
pk  GroupId
    GroupName
    Description
    Size
---------------

---------------
Question
---------------
pk  QuestionId
    Description
fk1 Group1
fk2 Group2
---------------

---------------
Study
---------------
pk  StudyId
    pubmedId
    Platform
---------------

---------------
M
---------------
pk  MId
fk1 StudyId
fk2 QuestionId
fk3 EntrezId
    M
---------------

---------------
p
---------------
pk  pId
fk1 StudyId
fk2 QuestionId
fk3 EntrezId
    p
    q
---------------

---------------
Meta
---------------
pk  MetaId
fk  EntrezId
    aM
    aMW
    p
    q
---------------

---------------
Entrez
---------------
pk  EntrezId
fk  Chromosome
---------------

---------------
Chromosome
---------------
pk  Chromosome
---------------

---------------
GSymbol
---------------
pk  SymbolId
fk  EntrezId
    GSymbol
---------------

Ausgabe:

Etwa so wie hier (das war ein Demo wo die dahinterliegende Datenbankstruktur noch nicht ganz so generisch war und es daher einfach mit 2 Joins in einem einzigen SQL-Statement zu lösen war):

...

In einer solchen Datenbank-Tabelle werden zu Beginn bis zu etwa 20.000 Einträge stehen, was sich aber später noch stark erweitern wird. Daher auch meine Unsicherheit bezüglich der Lösungsmöglichkeit mit Joins oder Unterabfragen usw. Das Ganze soll ja halbwegs performant sein. Joins wären da wohl besser. Ich bin mir unsicher, wie das mit den Joins für den mittleren Bereich der Tabelle (S1 bis S27) funktionieren kann. Das wird dann wohl ein recht langes Statement ...

Ich weiß nicht, ob es jetzt verständlicher ist, ich hoffe es. Hatte mich eigentlich bemüht, es abzukürzen um nur das relevante Teilproblem darzustellen. Ist mir wohl nicht richtig gelungen.

Liebe Grüße
sunny