php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.08.2004, 18:21  
Gast
 
Beiträge: n/a
Standard [Erledigt] Query läuft nicht

Hallo,

ich habe ein Problem mit einem Query:

Code:
SELECT id, fl, ka, ko, date_format(saison_v, '%d.%m.%Y') AS saison_v, date_format(saison_b, '%d.%m.%Y') AS saison_b, preis, region, typ FROM $tabelle WHERE (saison_v between '2004-08-14 ' AND '2004-09-04 ') OR (saison_b between '2004-08-14 ' AND '2004-09-04 ') and (typ='S') and (ka=4) and (ko=8) ORDER BY saison_v ASC, preis ASC LIMIT 0,10;
Das funktioniert auch gut. Allerdings gibt er mir nicht die Datensätze mit der anzahl ka=4 und ko=8 raus! Mache ich es mit HAVING ka=4... etc.´, dann läuft es. Nun ja, wäre ja kein Problem, aber ich habe gleichzeitig ein query, welches ich zum Blättern benutze. ich benutze also das zweite query:
Code:
SELECT COUNT(id) FROM $tabelle WHERE (saison_v between '2004-08-14 ' AND '2004-09-04 ') OR (saison_b between '2004-08-14 ' AND '2004-09-04 ') HAVING (typ='S') and (kabinen=4) and (kojen=8) ;
Das obige wie das zweite also mit HAVING. Das zweite mit @mysql_result. Es funktioniert aber nicht. Das zweite Query funktioniert nur mit AND, nicht aber mit HAVING!!! Also mit AND (typ='S') and (kabinen=4) and (kojen= ;, nie aber mit HAVING (typ='S') and (kabinen=4) and (kojen= ;!!!

Ich hoffe, ich konnte das Problem einigermassen schildern. Hmmmmmm


Vielen Dank...


Grüße
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.08.2004, 18:53  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

HAVING wird im allgemeinen nur mit GROUP BY benutzt.

mysql_error() ?
Guradia ist offline   Mit Zitat antworten
Alt 13.08.2004, 19:03  
Gast
 
Beiträge: n/a
Standard

Tja, ich habe ORDER BY mit GROUP BY ausgetauscht, aber da hegt nichts mehr!!???

Warum funktioniert das komplett beim ersten Query mit HAVING aber im zweiten nicht. Das scheint mir etwas suspekt...


Grüße und Dank

Kuke
  Mit Zitat antworten
Alt 13.08.2004, 19:16  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von kuke
Tja, ich habe ORDER BY mit GROUP BY ausgetauscht, aber da hegt nichts mehr!!???
Tut man ja auch nicht ....
ORDER und GROUP haben NICHTS miteinander zu tun ...

Zitat:
Zitat von kuke
Warum funktioniert das komplett beim ersten Query mit HAVING aber im zweiten nicht. Das scheint mir etwas suspekt...
*dito* ... ich sehe im ersten Query auch kein HAVING ... *?!*


Auch .. nachdem ich es lesbar gestaltet habe (und das OR versinnifiziert habe) .. kann ich kein HAVING entdecken ...
Code:
SELECT	id,
		fl,
		ka,
		ko,
        date_format(saison_v, '%d.%m.%Y') AS saison_v,
        date_format(saison_b, '%d.%m.%Y') AS saison_b,
        preis,
        region,
        typ

FROM	$tabelle

WHERE	(	saison_v BETWEEN '2004-08-14 ' AND '2004-09-04 '
		OR	saison_b BETWEEN '2004-08-14 ' AND '2004-09-04 ')
	AND typ='S'
	AND ka=4)
	AND ko=8)

ORDER
	BY	saison_v ASC,
		preis ASC

LIMIT	0,10;
Guradia ist offline   Mit Zitat antworten
Alt 13.08.2004, 19:36  
Gast
 
Beiträge: n/a
Standard

Tja,

vielen Dank ersma. Es war wirklich etwas schlecht ausgedrückt, aber wie gesagt, im ersten Query für die Abfrage der Datensätze:

Code:
select id, fl... from $tabelle, WHERE 'datumsformen' HAVING ka=4.. funktioniert.
Er gibt alle korrekten Datensätze aus mit den exakten anzahlen ka und ko. Mache ich es mit AND ka=4..., dann wird es zwar mit den richtigen datumsgrenzen angegeben, aber auch andere ka und ko 's . Nun knnte man ja locker HAVING nehmen, da es ja super klappt. Allerdings für mein zweites Query zur feststellung der anzahl datensätze mit den kriterien funktioniert es nicht:

Code:
"SELECT COUNT(id) FROM $tabelle WHERE (saison_v between '$date_von' AND '$date_bis') OR (saison_b between '$date_von' AND '$date_bis')  HAVING ko=4 and ka=8;"
Das macht doch keinen Sinn!!!??

However, suche neue Wege...

Kuke
  Mit Zitat antworten
Alt 13.08.2004, 21:08  
Gast
 
Beiträge: n/a
Standard

Du hast schon daran gedacht, dass AND eine höhere Priorität als OR hat und der Where-Clause nicht doch vielleicht so aussehen sollte?

WHERE ((saison_v between '2004-08-14 ' AND '2004-09-04 ') OR (saison_b between '2004-08-14 ' AND '2004-09-04 ')) AND (typ='S') AND (ka=4) AND (ko=8)
  Mit Zitat antworten
Alt 13.08.2004, 21:13  
Gast
 
Beiträge: n/a
Standard

jau,


habe es jetzt anders gemacht... schitt-kram!

Vielen Dank aber...


Grüße

Kuke
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Query abbrechen nicon_26 Datenbanken 1 13.02.2008 11:34
NS Query Problem GSJLink Datenbanken 0 07.09.2007 18:04
Variablen in Query automatisch escapen Maho88 PHP Tipps 2007 10 31.07.2007 08:42
SQL Query Builder gesucht MaMo-Net Beitragsarchiv 10 08.05.2007 21:42
find den Fehler im Query nicht !? madSoul Datenbanken 2 09.11.2006 12:19
Probleme mit einer query tinchen Datenbanken 20 30.05.2006 19:39
PHP/MySQL: Query wird nicht ausgeführt Zergling-new Tutorials 5 09.05.2006 23:16
query und ' speichern? flflfl PHP Tipps 2006 2 14.04.2006 18:21
[Erledigt] count(..) in derselben Query noch "abfragen" Datenbanken 4 04.01.2006 17:33
Mehr als ein Feld mit Distinct in einem Query auslesen ?? Bouni PHP-Fortgeschrittene 9 19.12.2005 12:43
query r�cksetzen? Promaetheus PHP Tipps 2007 15 01.12.2005 13:53
[Erledigt] Hartnäckiges SQL Query... Datenbanken 1 05.10.2005 18:23
Query, was aus einer Tabelle mehrere Summen rausholt Datenbanken 3 14.09.2005 16:45
select query durch if anweisungen splitten Datenbanken 6 06.09.2004 13:46
mysql Fehler - query was empty Anuschka Datenbanken 2 01.09.2004 00:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
query having, between :\date_von\ and :\date_bis\

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.