php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-02-2005, 18:36
smonkey
 Newbie
Links : Onlinestatus : smonkey ist offline
Registriert seit: Feb 2005
Beiträge: 3
smonkey ist zur Zeit noch ein unbeschriebenes Blatt
Standard [MySQL] Einträge unter GROUP BY sortieren?

Hallo zusammen,

ich hänge schon eine ganze Weile an folgendem Problem, und hoffe ihr könnt mir vielleicht weiterhelfen.

Ich habe folgende Situation:

Diese Tabelle ist zwar Sinnentfremded aber enstprich technisch dem gleichen Problem:

Code:
Tabelle Artikel:
id	item	sort	name
1	1	1	Bleistift 
2	1	2	Kugelschreiber 
3	2	2	roter folienstift 
4	2	0	blauer folienstift 
5	2	1	güner folienstift
Jeder artikel ist einem item zugeordnet, und besitzt eine Anzeigeposition (sort) innerhalb das items.


Ich möchte mir nun alle Items anzeigen lassen (GROUP BY item), mit dem Namen des ersten (sort) Artikels.

Meine Idee war nun:

Code:
SELECT * 
FROM test
GROUP BY item
ORDER BY sort
Code:
Ergebniss:
id	item	sort	name
1	1	1	Bleistift 
3	2	2	roter folienstift
Das Ergebniss war natürlich gewünscht. Was aber logisch ist, da mysql zuerst gruppieret (GROUP BY) before es sortiert (ORDER BY).

Meine gewünschte Ausgabe wäre:
Code:
id	item	sort	name
1	1	1	Bleistift 
4	2	0	blauer folienstift
.. da ich immer nur den ersten nach dem Feld "sort" sortierten Artikel sehen möchte.


Ich hoffe jemand hat eine Lösung oder noch einen Denkanstoss für mich.

In meiner reellen Situation habe ich noch einige JOINS mit in der Abfrage, vielleicht gibts es darüber eine Lösung.

Einen ähnlichen Beitrag habe ich gefunden (GROUP BY sortieren) wesen Ansatz und Lösung aber, denke ich, nicht ganz entspricht.

Vielen Dank
smonkey

Geändert von smonkey (22-02-2005 um 18:39 Uhr)
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 22-02-2005, 19:03
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du weisst schon dass man nach allen single cols gruppieren sollte da sonst das Ergebnis nicht korrekt sein kann.
MySQL erlaubt das zwar, andere DB Systeme verweigern dies allerdings.
Das Gruppieren ist eigentlich für aggregatsfunktionen gedacht. In Deiner Abfrage sehe ich keine.
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #3 (permalink)  
Alt 22-02-2005, 19:04
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

evt langt in deinem fall schon die aggregatsfunktion MIN()
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #4 (permalink)  
Alt 23-02-2005, 07:58
smonkey
 Newbie
Links : Onlinestatus : smonkey ist offline
Registriert seit: Feb 2005
Beiträge: 3
smonkey ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo MelloPie,

erstmal Danke für deine Antwort. Ich denke eher Aggregatsfunktionen sind ein Feature von GROUP BY, aber nicht die ausschliessliche Verwendung(?).

Wie dem auch sei, siehst du denn eine andere Möglichkeit, die Ausgabe auf eine Zeile pro 'item' zu beschränken? Möglicherweise über einen JOIN?


Da kommt mir auch schon die Lösung. War ein guter Denkanstoss mit dem MIN(). Bin daran aber immer gescheitert, weil dieser alleine würde ja nur den niedriegsten Wert ausgeben. Nicht aber den Datensatz mit dem niedriegsten Wert.

Meine Lösung funnktioniert nun aber über HAVING:

Code:
SELECT * 
FROM test
GROUP BY item
HAVING sort=MIN(sort) 
ORDER BY sort
Danke
smonkey

Geändert von smonkey (23-02-2005 um 08:01 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 23-02-2005, 08:09
smonkey
 Newbie
Links : Onlinestatus : smonkey ist offline
Registriert seit: Feb 2005
Beiträge: 3
smonkey ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zu früh gefreut ...

HAVING wird ja auch erst nach GROUP BY angezeigt, also kriege ich nicht alle Datensätze.


Gibt es die Möglichkeit mit Aggregatsfunktionen in ON-Klauseln eines JOINS zu arbeiten?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

04.09.2020 palle_1977 | Kategorie: PHP
numaeks Web-Farbmixer

Die RGB-Farben lassen sich hier auf unterschiedliche Weise mischen. Zur Einstellung werden auch die Dreh- und Schieberegler mit Canvas verwendet. Gespeichert werden die Farben in einem Cookie.

04.09.2020 numaek | Kategorie: JAVASCRIPT/ Tools
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:14 Uhr.