Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
DISTINC, aber mehrere Spalten [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
DISTINC, aber mehrere Spalten


 
MoRtAlAn
21-05-2002, 10:17 
 
ich möchte in einer tabelle die Ausgabe nach einer Spalte sortieren, die anderen Spalten sollen aber trotzdem angezeigt werden.

Beispiel:
SELECT DISTINCT spalte01 FROM tabelle01 ORDER BY spalte01

mit diesem Befehl lasse ich mit doppelte Datensätze immer nur einmal anzeigen, allerdings bekomme ich es nicht hin, andere Spalten mit auszugeben, die nicht von DISTINCT betroffen sein sollen.

Idee ??

gruss

 
Ralf28
22-05-2002, 10:14 
 
Die anzuzeigenden Spalten müssen natürlich ebenfalls im SQL-Statement aufgeführt sein.
Nach Spalte01 muss dann Spalte02,Spalte03 usw stehen. Das sollte dann funktionieren.
Grüsse

 
goth
22-05-2002, 14:08 
 
DISTINCT bezieht sich immer auf sämtliche Spalten der Query:

DISTINCT and DISTINCTROW are synonyms and specify that duplicate rows in the result set should be removed. (http://www.mysql.com/doc/S/E/SELECT.html)

 
shabby
26-05-2002, 00:38 
 
ich bin der meinung, du meinst nicht
select distinct, denn das entfernt alle mehrfachen tupeln einer relation, sondern group by (alle tupel werden um eine spalte gruppiert)
distinct reduziert von der semantik her, wie bereits erwähnt, die relation um ganze Reihen

willst du 3 spalten auswählen, wo bei die erste nicht doppelt vorkommen soll, wäre das z.B.:

select r.spalte1,d.spalte2,d.spalte3 from r,d where [Bedingung] group by r.spalte1

hieraus ist bereits ersichtlich, dass das ganze natürlich nur funktioniert, wenn die anderen Spaltenwerte für jeden Eintrag von r.spalte1 identisch sind (z.B. bei Verbunden zwischen Tabellen), bzw. eine Aggregatfunktion verwendet wird.

z.B.: select r.kundennummer,count(r.bestellungID) from r where kundennummer = $kunde group by r.kundennummer (aggregatfunktion, zählt bestellungen pro kunde)






hopeThatHelps

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:19 Uhr.