Announcement

Collapse
No announcement yet.

Query für Tabelle mit multiplen Datensätzen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Query für Tabelle mit multiplen Datensätzen

    Hallo Team!

    Ich habe eine Produktdatenbank mit mehreren Tabellen. Die Haupttabelle lautet eben "PRODUKT" und dann gibt es eben noch dazugehörige Untertabellen.
    Gleich vorneweg: Das Design der Datenbank ist nicht wirklich gut, es wurde von ms access in eine mysql Datenbank importiert. Das ganze wird jetzt aber nicht mehr geändert, da sich schon einige tausend Datensätze angesammelt haben.

    Meine Frage:

    Wenn ich mit einer einzigen Abfrage alle Tabellen mit LEFT JOIN miteinbeziehe, wird die query vorzeitig abgebrochen. Und das Problem hab ich - so glaub ich zumindest - schon erkannt. Hier mal die Query :

    PHP Code:
    SELECT 
    t1
    .SATZ1,
    t1.SATZ2,
    t1.SATZ3
    t1.SATZ4
    t1.SATZ5
    t1.SATZ6
    t1.SATZ7,
    t1.SATZ8,
    t1.SATZ1,
    t1.SATZ2,
    t2.* AS TABELLE2,  // In dieser Tabelle sind mehrere Datensätze gleich
    t3.* AS TABELLE3,  // In dieser Tabelle sind mehrere Datensätze gleich
    t4.* AS TABELLE4,  // In dieser Tabelle sind mehrere Datensätze gleich
    t5.* AS TABELLE5   // In dieser Tabelle sind mehrere Datensätze gleich
    FROM TABELLE1 as t1

    LEFT JOIN TABELLE2 
    as t2
    ON LOWER
    (t2.SATZ1) = LOWER(t1.SATZ1)

    LEFT JOIN TABELLE3 as t3
    ON LOWER
    (t3.SATZ1) = LOWER(t1.SATZ1)

    LEFT JOIN TABELLE4 as t4
    ON LOWER
    (t4.SATZ1) = LOWER(t1.SATZ1)

    LEFT JOIN PRODREGISTER as t5
    ON LOWER
    (t5.SATZ1) = LOWER(t1.SATZ1)

    WHERE t1.SATZ1 '".$ID."'"); 
    Dadurch, dass in der Tabelle 2 - 5 die ID mehrfach vorkommt - und diese auch alle benötigt werden, wird die Query extrem lang UND sie schleift auch in jedem Objekt immer wieder die ersten Abfragen immer wieder mit.

    Hat es hier also mehr Sinn, 5 extra Queries zu erstellen? Oder ist mein obriger Ansatz kompletter Käse?

    Ich habe mit großen Datenmengen wenig bis gar keine Erfahrung und bin für jeden Hinweis, wie man so etwas am besten handelt, sehr dankbar!

    bis dann,

    Stefan
Working...
X