phpbar.de logo

Mailinglisten-Archive

[php] OT: MySQL HAVING Query

[php] OT: MySQL HAVING Query

Yannik Hampe yannik at cipher-code.de
Fre Dez 22 18:41:25 CET 2006



Michael Borchers wrote:
> Die Query:
> SELECT angebot.angebot_id, gaubenkalkulation.preisanfrage_id AS 
> preisanfrage_id, aufkeilfenster_kalk.preisanfrage_id AS preisanfrage_id
> FROM angebot
> LEFT OUTER JOIN gaubenkalkulation ON angebot.gaubenkalkulation_id = 
> gaubenkalkulation.gaubenkalkulation_id
> LEFT OUTER JOIN aufkeilfenster_kalk ON angebot.fensterkalkulation_id = 
> aufkeilfenster_kalk.fenster_kalk_id
> HAVING preisanfrage_id != NULL
> 
> 
> Das Problem:
> Zu jedem Angebot gibt es entweder eine Preisanfrage in der Gauben-, ODER der 
> Fensterkalkulation.
> Später in php möchte ich aus dem mysql_fetch_array nur 
> $row['preisanfrage_id'] haben.
> 
> Ohne die HAVING Klausel erhalte ich z.B. folgende Ergebnisse:
> angebot_id    preisanfrage_id    preisanfrage_id
> 1                    10                        NULL
> 2                    0                            NULL
> 3                    NULL                    20
> 
> 
> usw. - lese ich die nun php aus, erhalte ich immer die "letzte" 
> preisanfrage_id, was in der ersten Reihe
> z.B. NULL wäre, anstatt die preisanfrage ID davor '10'
> 
> Die HAVING Klausel will natürlich ein eindeutiges Feld, was preisanfrage_id 
> ja nun nicht mehr ist.
> Ich möchte aber vermeiden, die Felder unterschiedlich zu benennen (z.B. 
> preisanfrage_id1 und -2)
> und dann mit php abzufragen if(!empty(preisanfrage_id)) ...!!
> 
> Gibt es da eine Möglichkeit?! 

Probier mal den Query so zu modifizieren:
SELECT angebot.angebot_id,
IFNULL(gaubenkalkulation.preisanfrage_id,aufkeilfenster_kalk.preisanfrage_id)
AS preisanfrage_id
FROM angebot ...
> 

Yannik

php::bar PHP Wiki   -   Listenarchive