Heim  >  Artikel  >  Datenbank  >  Verstehen Sie den Unterschied zwischen where und have in SQL-Anweisungen

Verstehen Sie den Unterschied zwischen where und have in SQL-Anweisungen

怪我咯
怪我咯Original
2017-03-31 10:07:142170Durchsuche

HAVING zuerst Gruppen und filtert dann die Datensätze, während WHERE die Datensätze vor dem Aggregation filtert. Das heißt, es wirkt vor der GROUP BY-Klausel und der HAVING-Klausel und die HAVING-Klausel filtert die Gruppendatensätze nach der Aggregation. Die von
verwendeten -Objekte sind unterschiedlich. Die WHERE-Klausel funktioniert auf Tabellen und Ansichten, und die HAVING-Klausel funktioniert auf Gruppen. WHERE wählt die Eingabezeilen vor der Gruppierungs- und Aggregationsberechnung aus (daher steuert es, welche Zeilen in die Aggregationsberechnung eingehen), während HAVING die gruppierten Zeilen nach der Gruppierung und Aggregation auswählt. Daher kann die WHERE-Klausel keine Aggregatfunktion enthalten, da es keinen Sinn macht, eine Aggregatfunktion zu verwenden, um zu bestimmen, welche Zeilen in die Aggregationsoperation eingegeben werden. Im Gegensatz dazu enthält die HAVING-Klausel immer Aggregatfunktionen. (Genau genommen könnten Sie die HAVING-Klausel auch ohne Aggregation schreiben, aber das wäre Zeitverschwendung. Dieselbe Bedingung könnte in der WHERE-Phase effizienter verwendet werden.) Beispiel: select * from tablename where id > ; 1; und
select * from tablename with id > Es wird nicht empfohlen, have
zu verwenden, um es in zwei Sätzen zusammenzufassen:
Die WHERE-Anweisung kommt vor der GROUPBY-Anweisung; SQL berechnet die WHERE-Anweisung vor der Gruppierung. Die HAVING-Anweisung kommt nach der GROUPBY-Anweisung; SQL berechnet die HAVING-Anweisung nach der Gruppierung.

Das obige ist der detaillierte Inhalt vonVerstehen Sie den Unterschied zwischen where und have in SQL-Anweisungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn