Ankündigung

Einklappen
Keine Ankündigung bisher.

verknüpfte datensätze abfragen (Kinder<->Väter -> Väter rückgabe -> Kinder ausschl.)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • verknüpfte datensätze abfragen (Kinder<->Väter -> Väter rückgabe -> Kinder ausschl.)

    Hallo,

    ich habe folgende Situation (MYSQL):


    Tabelle: catalog_product_flat_2

    entity_id | name | sku
    ------------------------------------------------------
    1 | schönes Seil | A001 (einfacher Artikel)
    ------------------------------------------------------
    2 | schönes Seil 2 | A002 (einfacher Artikel)
    ------------------------------------------------------
    3 | Seil | V001 (konfigurierbare Artikel (Vater) sprich mit verknüpften Kindern)
    ------------------------------------------------------
    4 | Seil schwarz | K001-1 (Kindartikel von entity_id 3)
    ------------------------------------------------------
    5 | Seil weiß | K001-2 (Kindartikel von entity_id 3)
    ------------------------------------------------------


    Tabelle: catalog_product_relation (verknüpfungstabelle von vätern und kindern)

    parent_id | child_id
    -----------------------------------
    3 | 4
    -----------------------------------
    3 | 5
    -----------------------------------


    Nun stehe ich vor folgender Herrausforderung:

    Ich muss auf der Tabelle catalog_product_flat_2 eine LIKE Abfrage nach dem Namen '%seil%' machen. Dabei sollen mir die einfachen Artikel (1,2) und die Vaterartikel (3)
    jedoch nicht die Kinder von Vätern (4,5) zurückgegeben werden. Dies ist aktuell noch recht einfach.

    select distinct(entity_id) FROM catalog_product_flat_2 where (sku LIKE '%seil%' or name LIKE '%seil%') and entity_id not in (select child_id from catalog_product_relation)


    ABER

    Es muss außerdem möglich sein Kinderartikel direkt z.B anhand der SKU zu suchen und dann aber nicht das Kind sondern den Vaterartikel zurückzubekommen.
    Sprich wenn ich nach der SKU: K001-2 suche muss mir der Artikel mit der entity_id 3 zurückgegeben werden aber nicht die 5 selbst.

    Aber ab diesem Punkt stehe ich auf dem Schlauch. Wie kann ich mir denn mit den beiden Tabellen bei einer Suche die Väter der Kinder zurückgeben lassen aber die Kinder selbst exkludieren?
    Falls jemand eine Idee hat würde ich mich sehr freuen.
    Kann ja auch sein das es gar nicht geht. Mir fällt absolut nix ein.

    Grüße
    Björn


  • #2
    erledigt. ich habe jetzt folgenden query der funktioniert.

    SELECT entity_id FROM catalog_product_flat_2 WHERE ((sku = 'V-12101' ) and entity_id not in (select child_id from catalog_product_relation)) or (entity_id in (select parent_id from catalog_product_relation where child_id in (select entity_id from catalog_product_flat_2 where (sku = 'V-12101' ) ))) limit 0,9

    Kommentar

    Lädt...
    X