php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.08.2010, 14:53  
noop
Gast
 
Beiträge: n/a
Standard [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 
Zitat:
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
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.08.2010, 15:05  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.307
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Was du suchst ist GROUP BY, nicht DISTINCT
fab ist gerade online   Mit Zitat antworten
Alt 01.08.2010, 15:11  
noop
Gast
 
Beiträge: n/a
Standard

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
  Mit Zitat antworten
Alt 01.08.2010, 15:17  
noop
Gast
 
Beiträge: n/a
Standard

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
  Mit Zitat antworten
Alt 01.08.2010, 15:34  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.307
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

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
fab ist gerade online   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Abfrage über 2 Tabellen dauert zu lange Registrierer Datenbanken 3 05.06.2010 20:44
mySQL abfrage über mehrere Tabellen crustyroyal PHP Tipps 2010 3 23.04.2010 14:20
Problem mit Abfrage über zwei Tabellen Daylen Datenbanken 8 18.12.2009 14:07
SQL Abfrage über 2 Tabellen. 2te Tabelle nur max eines Feldes aus einer Gruppe jackie1983 PHP Tipps 2009 6 04.12.2009 12:37
gelöst: Datenbankabfrage über 3 Tabellen lord_icon Datenbanken 0 12.10.2009 00:38
[Erledigt] SQL Abfrage über 2 Tabellen, wenn eine davon leer ist Registrierer Datenbanken 13 18.05.2009 20:48
MySQL Abfrage über 5 Tabellen evtl. IF ghost120 Datenbanken 11 13.04.2009 20:00
sortierung einer Abfrage über 2 Tabellen mchacka Datenbanken 2 17.03.2009 17:55
MySQL Abfrage über 2 Tabellen Datenbanken 4 21.03.2006 11:44
Abfrage über zwei Tabellen (m. JOIN?) Spiff Datenbanken 3 13.02.2006 09:32
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
Mysql Abfrage über 3 Tabellen in Verbidung mit COUNT() PHP Tipps 2005-2 4 28.06.2005 07:47
Mysql Abfrage über 2 Tabellen mit Verknüpfung zuner 3. Datenbanken 2 26.10.2004 16:36
Abfrage über 3 Tabellen Datenbanken 3 20.09.2004 08:08

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php select drei tabellen, php select * from reihenfolge, fab t2, 3 tabellen gruppieren, php mysql datenbank abfrage aus 3 tabellen gruppieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum