[GastForen Programmierung/Entwicklung PHP und MySQL Grupieren von resultaten

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Grupieren von resultaten

Pozor
Beiträge gesamt: 892

24. Jun 2005, 16:07
Beitrag # 1 von 12
Bewertung:
(3979 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

Ich möchte die folgende SQL-Query umbauen, so dass die Resultate
absteigend nach dem Thema mit den meisten items sortiert wird:
Das ist die original Query:
Code
    SELECT  
ac_r_pk_id AS right_id,
ac_r_menu AS right_menu,
ac_r_name AS right_name,
ac_rt_pk_id AS topic_id,
ac_rt_name AS topic_name

FROM
ac_right,
ac_righttopic

WHERE
ac_rt_fk_id = ac_rt_pk_id

ORDER BY
ac_rt_name ASC,
ac_r_name ASC


Ich habe schon mal mit Count und Group BY gespielt, doch kahm ich auf keinen grünen Zweig.

ac_rt_name ist der Themaname
ac_rt_pk_id ist der Primary key vom Thema.

Jemand eine Idee?


Gruss Stefan


"KISS - KEEP IT SIMPLE, STUPID"
PHP Documentation Download
X

Grupieren von resultaten

oesi50
  
Beiträge gesamt: 2315

24. Jun 2005, 16:26
Beitrag # 2 von 12
Beitrag ID: #174301
Bewertung:
(3972 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ich weiß nicht welche db-version du hast, aber im Allgemeinen geht es so:
Code
SELECT  
ac_r_pk_id AS right_id,
ac_r_menu AS right_menu,
ac_r_name AS right_name,
ac_rt_pk_id AS topic_id,
ac_rt_name AS topic_name,
count(*) AS anzahl

FROM ac_right, ac_righttopic

WHERE ac_rt_fk_id = ac_rt_pk_id

GROUP BY topic_id

ORDER BY anzahl DESC, ac_rt_name ASC, ac_r_name ASC



Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#174298]
(Dieser Beitrag wurde von oesi50 am 24. Jun 2005, 16:27 geändert)

Grupieren von resultaten

Pozor
Beiträge gesamt: 892

24. Jun 2005, 17:22
Beitrag # 3 von 12
Beitrag ID: #174308
Bewertung:
(3963 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

soweit war ich schon mal, das Problem ist nur, dass es nur ein Resultat
pro Thema ergibt, anstatt bis zu 16 (momentaner Stand).

Ich möchte erreichen, dass ich die selben Resultate bekomme, wie bei
der ersten Query aber zusätzlich absteigend nach der anzahl einträge pro Thema.
Es ist jetzt schon so sortiert, doch nur ein Resultat pro Thema.


Gruss Stefan


"KISS - KEEP IT SIMPLE, STUPID"
PHP Documentation Download


als Antwort auf: [#174301]

Grupieren von resultaten

Pozor
Beiträge gesamt: 892

24. Jun 2005, 17:38
Beitrag # 4 von 12
Beitrag ID: #174310
Bewertung:
(3961 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Oesi,

Ich befürchte es geht nur mit einem subselect (am MySQL 4.1)...

In etwa so:
Code
    SELECT   
ac_r_pk_id AS right_id,
ac_r_menu AS right_menu,
ac_r_name AS right_name,
ac_rt_pk_id AS topic_id,
ac_rt_name AS topic_name,
(SELECT COUNT(ac_rt_fk_id) FROM ac_right WHERE ac_rt_fk_id = ac_rt_pk_id) AS anzahl

FROM
ac_right,
ac_righttopic

WHERE
ac_rt_fk_id = ac_rt_pk_id

ORDER BY
anzahl DESC,
ac_rt_name ASC,
ac_r_name ASC



Gruss Stefan


"KISS - KEEP IT SIMPLE, STUPID"
PHP Documentation Download


als Antwort auf: [#174301]
(Dieser Beitrag wurde von Pozor am 24. Jun 2005, 18:26 geändert)

Grupieren von resultaten

oesi50
  
Beiträge gesamt: 2315

24. Jun 2005, 17:45
Beitrag # 5 von 12
Beitrag ID: #174312
Bewertung:
(3959 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
versuchs mal so:
Code
SELECT   
ac_r_pk_id AS right_id,
ac_r_menu AS right_menu,
ac_r_name AS right_name,
a.ac_rt_pk_id AS topic_id,
a.ac_rt_name AS topic_name,
count(b.ac_rt_pk_id) AS anzahl

FROM ac_right, ac_righttopic AS a, ac_righttopic AS b

WHERE ac_rt_fk_id = a.ac_rt_pk_id
AND a.ac_rt_pk_id = b.ac_rt_pk_id

GROUP BY b.ac_rt_pk_id

ORDER BY anzahl DESC, ac_rt_name ASC, ac_r_name ASC


habe ich allerdings nicht getestet.


Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#174310]
(Dieser Beitrag wurde von oesi50 am 24. Jun 2005, 17:46 geändert)

Grupieren von resultaten

Pozor
Beiträge gesamt: 892

24. Jun 2005, 18:20
Beitrag # 6 von 12
Beitrag ID: #174314
Bewertung:
(3951 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Oesi,

es resultiert dasselbe.

Es kann nicht gehen mit GROUP BY. Es werden Gruppen gebildet und
nicht die einzelnen Resultate der Gruppe aufgeführt.


Gruss Stefan


"KISS - KEEP IT SIMPLE, STUPID"
PHP Documentation Download


als Antwort auf: [#174312]

Grupieren von resultaten

oesi50
  
Beiträge gesamt: 2315

24. Jun 2005, 18:33
Beitrag # 7 von 12
Beitrag ID: #174316
Bewertung:
(3946 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zeige mal die Datenbank(als dump), ich schau mal was sich machen lässt.


Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#174314]

Grupieren von resultaten

Pozor
Beiträge gesamt: 892

24. Jun 2005, 18:36
Beitrag # 8 von 12
Beitrag ID: #174317
Bewertung:
(3945 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mit der oben geposteten query gehts, ich brauch nur das Ganze mit
MySQL > 4.1.x laufen zu lassen.


Gruss Stefan


"KISS - KEEP IT SIMPLE, STUPID"
PHP Documentation Download


als Antwort auf: [#174310]
(Dieser Beitrag wurde von Pozor am 24. Jun 2005, 18:37 geändert)

Grupieren von resultaten

oesi50
  
Beiträge gesamt: 2315

24. Jun 2005, 22:28
Beitrag # 9 von 12
Beitrag ID: #174334
Bewertung:
(3937 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Es kann nicht gehen mit GROUP BY. Es werden Gruppen gebildet und
nicht die einzelnen Resultate der Gruppe aufgeführt.


Das kann ich so nicht stehen lassen. Dein Subselect lässt sich auch mit SELF JOINs realisieren.


Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#174316]

Grupieren von resultaten

Pozor
Beiträge gesamt: 892

25. Jun 2005, 01:44
Beitrag # 10 von 12
Beitrag ID: #174341
Bewertung:
(3934 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Oesi,

weisst du gerade wie? *lösungausdemärmelschüttel*


Gruss Stefan


"KISS - KEEP IT SIMPLE, STUPID"
PHP Documentation Download


als Antwort auf: [#174334]

Grupieren von resultaten

oesi50
  
Beiträge gesamt: 2315

25. Jun 2005, 09:49
Beitrag # 11 von 12
Beitrag ID: #174349
Bewertung:
(3927 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ansatzweise so:

http://www.hilfdirselbst.ch/...i?post=174312#174312

gib mir mal einen dump, und ich schüttel.


Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#174341]

Grupieren von resultaten

Pozor
Beiträge gesamt: 892

25. Jun 2005, 19:25
Beitrag # 12 von 12
Beitrag ID: #174387
Bewertung:
(3886 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Oesi,

danke für den Anstoss in die richtige Richtung.
Es funktioniert nun mit einem SELF JOIN:

Code
SELECT  
a.ac_r_pk_id AS right_id,
a.ac_r_menu AS right_menu,
a.ac_r_name AS right_name,
ac_rt_pk_id AS topic_id,
ac_rt_name AS topic_name,
count(* ) AS anzahl

FROM
ac_right AS a,
ac_right AS b,
ac_righttopic

WHERE
a.ac_rt_fk_id = b.ac_rt_fk_id AND
a.ac_rt_fk_id = ac_rt_pk_id

GROUP BY
a.ac_r_pk_id

ORDER BY
anzahl DESC ,
ac_rt_name ASC ,
a.ac_r_name ASC



Gruss Stefan


"KISS - KEEP IT SIMPLE, STUPID"
PHP Documentation Download


als Antwort auf: [#174349]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/