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
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
Kommentar