tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
277
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Chef_De_Loup Chef_De_Loup ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    48
    Folgender Zustand:
    Eine Tabelle in der ein Produkt steht. Jeder Eintrag besitzt eine ID welche in einer zweiten Tabelle Verknüpfungen zu Daten einer dritten Tabelle herstellt. Sprich ein Eintrag in der ersten Tabelle kann mehrere verschiedene Eintraege in der dritten Tabelle besitzen.
    Ich versuche nun krampfhaft die Tabelleninformationen so zu kombinieren, dass ich je Produkt nur einen Eintrag inklusive der verschiedenen Anhänge erhalte. Leider scheitere ich dabei immer wieder auf verschiedensten Wegen und komme nicht auf das Ergebnis das ich gerne haette.

    Beispiel einer meiner SQL Abfragen:

    SELECT
    t1.product_id, t3.value, t4.value

    FROM
    table1 AS t1

    LEFT JOIN table2 AS t2 ON t2.product_id=t1.product_id
    LEFT JOIN table3 AS t3 ON t3.id=t2.table3_id
    LEFT JOIN table3 AS t4 ON t4.id=t2.table3_id

    WHERE
    t1.parent_id=1 AND t3.group_id=6 AND t4.group_id=9

    ORDER BY
    t1.product_id

    Ich hoffe das Problem ist einigermassen verstaendlich. Die Eintrage in der dritten Tabelle sind einer Gruppe zugewiesen. Diese Gruppe ist mir bekannt und ich moechte gerne wissen, welchen Wert der jeweiligen Gruppe das Produkt hat.

    Am Ende waere das Ergebnis also:
    product_id, gruppeA_wert, gruppeB_wert
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Das SQL sieht gut aus. Was geht denn nicht?
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Chef_De_Loup Chef_De_Loup ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    48
    Ich bekomme anstatt eines Eintrages je Produkt leider zwei (bei zwei Gruppen). Gruppe A gibt einen Wert zurueck aber Gruppe B kombiniert diesen Wert mit seinen eigenen zwei Rueckgabewerten wodurch also zwei separate Eintraege erzeugt werden.
    Ich bin allmaehlich der Ueberzeugung das ich die Abfrage abtrenne und das Ganze in zwei getrennten SQL Abfragen aufteile. Ich hatte gehofft das es in einer geht und man dadurch etwas Aufwand spart, aber womoeglich ist der Aufwand fuer die Datenbank bei der Kombinationsmoeglichkeit sogar hoeher als bei getrennten Abfragen.
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Wenn du 1:n Beziehungen auf eine Zeile reduzieren willst, musst du überlegen wie du das machen Willst. Vei den mehreren Zeilen, was soll er da anzeigen?
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Chef_De_Loup Chef_De_Loup ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    48
    Ergebnis was derzeit rauskommt sieht etwa so aus:
    product_id, gruppeA_wert1, gruppeB_wert1
    product_id, gruppeA_wert1, gruppeB_wert2

    Wenn Gruppe B mehr als zwei Werte haette, wuerde eine entsprechende Anzahl an Ergebnissen folgen.

    Ich hab das Problem jetzt grundsaetzlich in Etappen aufgetrennt und muss daher mehrmals eine Datenbankabfrage rausschicken. Aber so scheint es etwas uebersichtlicher zu sein und ich kann meinen Kopf erstmal wieder von der Tischplatte nehmen.
     

Ähnliche Themen

  1. [MySQL] Datensätze kombinieren
    Von Nanaki im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 15.08.10, 17:16
  2. Antworten: 0
    Letzter Beitrag: 07.08.08, 09:01
  3. Mysql Count und Update kombinieren
    Von Hannibal im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 08.06.07, 18:04
  4. [MySQL] Zu viele Tabellendaten(ca. 15 millionen sprich 1,4 GB)
    Von FBIagent im Forum Relationale Datenbanksysteme
    Antworten: 15
    Letzter Beitrag: 29.11.05, 10:49
  5. MySQL mit Standalone Applikation kombinieren
    Von crimbler im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 26.06.03, 14:58