(8)SELECT (9)DISTINCT (11)<Top Num> <select list>
(1)FROM [left_table]
(3)<join_type> JOIN <right_table>
(2)ON <join_condition>
(4)WHERE <where_condition>
(5)
GROUP BY <group_by_list>
(6)WITH <CUBE | RollUP>
(7)HAVING <having_condition>
(10)ORDER BY <order_by_list>
é»è¾æ¥è¯¢å¤çé¶æ®µç®ä»
FROMï¼å¯¹FROMåå¥ä¸çå两个表æ§è¡
ç¬å¡å°ç§¯ï¼Cartesian product)(交åèæ¥ï¼ï¼çæèæ表VT1
ONï¼å¯¹VT1åºç¨ONçéå¨ãåªæé£äºä½¿<join_condition>为ççè¡æ被æå
¥VT2ã
OUTER(JOIN)ï¼å¦ ææå®äºOUTER JOINï¼ç¸å¯¹äºCROSS JOIN æ(
INNER JOIN),ä¿ç表ï¼preserved tableï¼å·¦å¤é¨èæ¥æ左表æ 记为ä¿ç表ï¼å³å¤é¨èæ¥æå³è¡¨æ 记为ä¿ç表ï¼å®å
¨å¤é¨èæ¥æ两个表é½æ 记为ä¿ç表ï¼ä¸æªæ¾å°å¹é
çè¡å°ä½ä¸ºå¤é¨è¡æ·»å å° VT2,çæVT3.å¦æFROMåå¥å
å«ä¸¤ä¸ªä»¥ä¸ç表ï¼å对ä¸ä¸ä¸ªèæ¥çæçç»æ表åä¸ä¸ä¸ªè¡¨éå¤æ§è¡æ¥éª¤1å°æ¥éª¤3ï¼ç´å°å¤çå®ææç表为æ¢ã
WHEREï¼å¯¹VT3åºç¨WHEREçéå¨ãåªæ使<where_condition>为trueçè¡æ被æå
¥VT4.
GROUP BYï¼æGROUP BYåå¥ä¸çåå表对VT4ä¸çè¡åç»ï¼çæVT5.
CUBE|ROLLUPï¼æè¶
ç»(Suppergroups)æå
¥VT5,çæVT6.
HAVINGï¼å¯¹VT6åºç¨HAVINGçéå¨ãåªæ使<having_condition>为trueçç»æä¼è¢«æå
¥VT7.
SELECTï¼å¤çSELECTå表ï¼äº§çVT8.
DISTINCTï¼å°éå¤çè¡ä»VT8ä¸ç§»é¤ï¼äº§çVT9.
ORDER BYï¼å°VT9ä¸çè¡æORDER BY åå¥ä¸çåå表æåºï¼çæ
游æ ï¼VC10).
TOPï¼ä»VC10çå¼å§å¤éæ©æå®æ°éææ¯ä¾çè¡ï¼çæ表VT11,并è¿åè°ç¨è
ã