phpbar.de logo

Mailinglisten-Archive

[dbs] Problem mit SELECT und GROUP

[dbs] Problem mit SELECT und GROUP

Sebastian Mendel lists at sebastianmendel.de
Mit Apr 7 19:16:19 CEST 2004


Nico Haase schrieb:

> SELECT  `b1`.`buchnr`  AS buchnr,  `b1`.`vorschlag`  AS vorschlag,  `b1`.`titel`  AS titel,  `b1`.`vorname`  AS vorname,  `b1`.`autor`  AS autor, LENGTH( CONCAT(  `b1`.`beschreibung` ,  `b1`.`fazit`  )  )  AS laenge, max( LENGTH( CONCAT(  `b2`.`beschreibung` ,  `b2`.`fazit`  )  )  )  AS laenge2
> FROM  `buecher`  AS b1
> LEFT  JOIN  `buecher`  AS b2 ON  `b1`.`buchnr`  =  `b2`.`buchnr`
> GROUP  BY  `b1`.`vorschlag`
> HAVING laenge = laenge2
> 
> Insgesamt müsste der Query meiner Meinung nach mindestens 65 Zeilen zurückgeben, laut "SELECT distinct ( vorschlag ) FROM buecher;" existieren so viele verschiedene Einträge. Es sind aber nur 35 Zeilen - kannst du dir (oder besser mir *g*) das erklären?

ich kenne deine Tabellen-Struktur immer noch nicht ...


was willst du denn un genau? das Buch mit der längsten Rezension? zu 
jedem Buch den Rezensenten mit der längsten Rezension? oder zu jedem 
Rezensenten das Buch mit seiner längsten Rezension?



das Feld anhand dessen 'gejoint' wird muss das selbe sein wie das wonach 
gruppiert wird!

das Buch mit dem längsten Rezesenten:

    SELECT `b1`.*,
           LENGTH(CONCAT(`b1`.`beschreibung`,`b1`.`fazit`)) AS `l`,
           MAX(LENGTH(CONCAT(`b2`.`beschreibung`,`b2`.`fazit`))) AS `l2`
      FROM `buecher` AS `b1`
LEFT JOIN `buecher` AS `b2`
        ON `b1`.`buchnr` = `b2`.`buchnr`
  GROUP BY `b1`.`buchnr`
    HAVING `l` = `l2`


der Rezensent mit der Lägsten Rezension:

  dazu fehlt mir das Feld welches den Rezensenten eindeutig 
identifiziert! vorschlag? vorname?

-- 
Sebastian Mendel (www.sebastianmendel.de)

*www.warzonez.de* | www.tekkno4u.de | www.nofetish.com

php::bar PHP Wiki   -   Listenarchive