phpbar.de logo

Mailinglisten-Archive

[dbs] Probleme mit LEFT JOIN

[dbs] Probleme mit LEFT JOIN

Sebastian Tobias Mendel genannt Mendelsohn lists at sebastianmendel.de
Mon Nov 17 18:23:53 CET 2003


> SELECT pixn.id, COUNT( pixn_bilder.pixnid ) AS anzahl, MIN( pixn_bilder.thumbURL ) AS erstesbild, count( meinung_pixn.meinungsid ) AS anzahlposts
> FROM pixn
> LEFT JOIN pixn_bilder ON pixn.id = pixn_bilder.pixnid
> LEFT JOIN meinung_pixn ON pixn_bilder.id + 60000 = meinung_pixn.forumid
> WHERE pixn.id = 438
> GROUP BY pixn.id
> 
> wenn ich das mach, steht im recordset für den wert mit der pixn.id 438:
> 
> id  	anzahl  	erstesbild  			anzahlposts  
> 438 	127 		p_370_1103180456_th.jpg 	94 
> 
> nimm ich den sql:
> (also die oben mit LEFT JOIN verknüpfte tabelle)
> 
> SELECT count( pixnid ) AS anzahl
> FROM `pixn_bilder` 
> WHERE pixnid = 438
> 
> bekomm ich:
> 
> anzahl  
> 42 
> 
> 
> also einmal anzahl = 127 und einmal anzahl = 42...

pobiers mal mit DISTINCT im COUNT()

... so auf gut Glück, ohne deine Struktur zu kennen:

    SELECT pixn.id,
           COUNT( DISTINCT pixn_bilder.id )          AS anzahl,
           MIN( pixn_bilder.thumbURL )               AS erstesbild,
           COUNT( DISTINCT meinung_pixn.meinungsid ) AS anzahlposts
      FROM pixn
LEFT JOIN pixn_bilder
        ON pixn.id = pixn_bilder.pixnid
LEFT JOIN meinung_pixn
        ON pixn_bilder.id + 60000 = meinung_pixn.forumid
     WHERE pixn.id = 438
  GROUP BY pixn.id



-- 
Sebastian Mendel (www.sebastianmendel.de)

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

php::bar PHP Wiki   -   Listenarchive