Announcement

Collapse
No announcement yet.

SQL Abfrage

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

  • SQL Abfrage

    Hallo,

    ich habe folgende Tabellen:
    marken, artikel, kategory und artikel2kategorie
    ich versuch das mal darzustellen:
    marke -> marken_id
    artikel -> artikel_id, marken_id
    kategory -> kategory_id
    artikel2kategorie -> id, kategory_id, artikel_id

    In der artikel2kategorie stehen nur die direkten Kategoriezuweisungen zu einem Artikel drin, also:

    Hauptkategorie
    Unterkat 1
    Unterkat 2

    Wenn ein Artikel in Unterkat 2 sein soll, dann wird er nur dort zugewiesen.

    Ich möchte nun folgendes Wissen:
    :: Alle Unterkategorien der Hauptkategorie x, welche Artikel mit der Marke Y enthalten
    :: Alle Hauptkategorien die Unterkategorien enthalten, in denen Artikel mit der Marke Y vorkommen
    :: Alle Marken, die innerhalb einer Unterkategorie der Hauptkategorie X vorkommen.

    Hat jemand eine Ahnung wie ich das machen kann, rein über SQL?

    lgralf

  • #2
    Ist Deine Kategorienaufzählung exemplarisch oder vollständig?
    Gruß, defo

    Comment


    • #3
      Hi,

      exemplarisch.
      Punkt 3 habe ich inzwischen selber hinbekommen:
      Code:
      SELECT DISTINCT man.*
      FROM marke AS man
      JOIN artikel AS art ON art.marken_id = man.marken_id AND art.active =  '1'
      JOIN kategory AS cat ON cat.parentid =  '".$sCategoryID."' AND cat.active =  '1'
      JOIN artikel2kategorie AS a2c ON a2c.kategory_id = cat.kategory_id AND a2c.artikel_id = art.artikel_id
      WHERE man.active =  '1'
      Bei Punkt 1 happert es noch, ich habe folgenden Ansatz:
      Code:
      SELECT DISTINCT cat.* FROM kategory AS cat
      JOIN artikel AS art ON art.active =  '1' AND art.marken_id =  '".$sBrandID."'
      JOIN artikel2kategorie AS a2c ON a2c.kategory_id = cat.kategory_id AND a2c.artikel_id = art.artikel_id
      WHERE cat.active =  '1'
      ORDER BY oxparentid, oxsort, oxtitle
      Allerdings bekomme ich dann nur die Unterkategorien, da diese ja auch die Artikel zugewiesen bekommen haben. Nicht aber die Hauptkategorien, denen ja keine Artikel zugewiesen wurden. Ich möchte hier aber den kompletten Baum haben.

      Die Kategorie Tabelle baut sich so auf:

      kategory_id, parent_id, title, ....
      1, rootid, Hauptkategorie
      2, 1, Unterkategorie 1
      3, 1, Unterkategorie 2
      4, rootid, Hauptkategoire 2

      lgralf

      Comment

      Working...
      X