Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Abfrage über 3 Tabellen mit

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Abfrage über 3 Tabellen mit

    Hi,

    ich habe 3 Tabellen die ich in eine Abfrage abfragen möchte.
    Das klappt auch.

    Leider sind ein paar Artikel durch ein dummen Import doppelt gelistet.
    Diese möchte ich nun aussortieren. DISTINCT sollte hier wohl die Lösung bringen

    Hier erstmal der funktionierende Code + dessen Ausgabe:
    Code:
    SELECT  T1.titel, T2.kategorie, T3.kategorie
    FROM  artikel T1, `artikel-kat` T2, kategorie T3
    WHERE  T1.id = T2.artikel AND T2.kategorie = T3.id
    
    titel 			kategorie 	kategorie
    Cappuccino Set 		23 		Zuhause
    Cappuccino Set 		23 		Zuhause
    Cappuccino Set 		143	 	Küchenbedarf
    Cappuccino Set 		207	 	Sonstiges
    Espresso Set 		23 		Zuhause
    Espresso Set 		143	 	Küchenbedarf
    Obstschneideset 	23 		Zuhause
    Obstschneideset 	23 		Zuhause
    Obstschneideset 	143	 	Küchenbedarf
    Obstschneideset 	207 		Sonstiges
    Gourmet-Set 		23 		Zuhause
    Gourmet-Set 		23 		Zuhause
    Gourmet-Set 		143 		Küchenbedarf
    Gourmet-Set 		207 		Sonstiges
    Nur wie setze ich nun DISTINCT ein ohne das ich einen SQL Fehler bekomme ?

    Am logischsten wäre für MICH folgende Syntax
    PHP-Code:
    SELECT  T1.titelDISTINCT(T2.kategorie), T3.kategorie
    FROM  artikel T1
    , `artikel-katT2kategorie T3
    WHERE  T1
    .id T2.artikel AND T2.kategorie T3.id 
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT(T2.kategorie), T3.kategorie FROM artikel T1, `artikel-kat` T2, kategor' at line 1

  • #2
    Was du suchst ist GROUP BY, nicht DISTINCT
    [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
    [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

    Kommentar


    • #3
      nein.. ist es nicht.

      Group by gruppiert es mir so, das eine ID nur immer einmal vorkommt.

      z.B.
      Code:
      SELECT  T1.titel, T2.kategorie, T3.kategorie
      FROM  artikel T1, `artikel-kat` T2, kategorie T3
      WHERE  T1.id = T2.artikel AND T2.kategorie = T3.id
      GROUP BY T2.kategorie
      ORDER BY T2.kategorie
      
      
      titel 				kategorie	kategorie
      Manschettenknöpfe 		3 		Textilen
      Brief- und Flaschenöffner 	5 		Office
      Schwebeglobus 			7 		Schreibgeräte
      Feuerzeug 			9 		Feuerzeuge
      Geldscheinklammer 		11 		Freizeit
      Massage-Set 			13 		Bodycare / Wellness
      Radio 				15 		Elektronik / Computer
      Werkzeug-Set 			17 		Werkzeuge / Tools
      Teelichthalter 			19 		Licht und Lampen
      Zahnstocherspender 		21 		Reise / Trips
      test 				23 		Zuhause / Lifestyle
      Automatikschirm 		25 		Schirme
      Jetzt habe ich jeweils nur einen Artikel aus einer jeweiligen Kategorie.
      Das ist nicht das Ziel, da durchaus MEHRERE Artikel in einer Kategorie sein können.

      DISTINCT schließt doppelte Werte aus... GROUP gruppiert mir nur Werte.
      Bin also immer noch der MEinung, das DISTINCT die Lösung ist.... zumindest wenn ich die richtige Syntax finde

      Kommentar


      • #4
        Done.

        SELECT Reihenfolge geändert... dann greift auch DISTINCT

        Code:
        SELECT DISTINCT T2.kategorie, T1.titel, T3.kategorie
        FROM  artikel T1, `artikel-kat` T2, kategorie T3
        WHERE  T1.id = T2.artikel AND T2.kategorie = T3.id
        AND T1.titel LIKE "Cappuccino Set"
        
        
        kategorie 	titel 	kategorie
        23 	Cappuccino Set 	Zuhause
        143 	Cappuccino Set 	Küchenbedarf
        207 	Cappuccino Set 	Sonstiges

        Kommentar


        • #5
          Man kann mit GROUP BY auch über mehrere Spalten gruppieren. Irgendwie wird mir aus deinen Postings immer noch nicht klar, was du genau erreichen wolltest aber wenn du das jetzt geschafft hast, ist ja alles gut
          [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
          [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

          Kommentar

          Lädt...
          X