4
SELECT select_option outer_select_item
6
WHERE subquery_expression logical_operator outer_condition_top
7
outer_group_by outer_having outer_order_by limit;
10
OUTR . field_name AS X |
11
aggregate_function OUTR . field_name ) AS X;
15
BIT_AND( | BIT_OR( | BIT_XOR( |
16
COUNT(DISTINCT | COUNT( |
19
STD( | STDDEV_POP( | STDDEV_SAMP( |
21
VAR_POP( | VAR_SAMP( | VARIANCE( |
26
outer_table_name AS OUTR |
27
outer_table_name AS OUTR2 LEFT JOIN outer_table_name AS OUTR ON ( outer_join_condition );
30
OUTR2 . int_field_name arithmetic_operator OUTR . int_field_name |
31
OUTR2 . date_field_name arithmetic_operator OUTR . date_field_name |
32
OUTR2 . char_field_name arithmetic_operator OUTR . char_field_name ;
35
ORDER BY OUTR . field_name , OUTR . `pk` ;
38
| GROUP BY OUTR . field_name ;
41
| HAVING X arithmetic_operator value ;
48
WHERE inner_condition_top
52
SELECT select_option inner_select_item
56
SELECT select_option inner_select_item
57
select_inner_body LIMIT 1;
59
select_inner_two_cols:
60
SELECT select_option inner_select_item , INNR . field_name AS Z
64
| ORDER BY INNR . field_name ;
67
| GROUP BY INNR . field_name ;
70
| HAVING X arithmetic_operator value;
73
INNR . field_name AS Y |
74
aggregate_function INNR . field_name ) AS Y ;
77
inner_table_name AS INNR |
78
inner_table_name AS INNR2 LEFT JOIN inner_table_name AS INNR ON ( inner_join_condition );
81
INNR2 . int_field_name arithmetic_operator INNR . int_field_name |
82
INNR2 . date_field_name arithmetic_operator INNR . date_field_name |
83
INNR2 . char_field_name arithmetic_operator INNR . char_field_name ;
86
outer_condition_bottom |
87
( outer_condition_bottom logical_operator outer_condition_bottom ) |
88
outer_condition_bottom logical_operator outer_condition_bottom ;
90
outer_condition_bottom:
94
field_name null_operator |
95
int_field_name int_expression |
96
date_field_name date_expression |
97
char_field_name char_expression ;
100
arithmetic_operator digit ;
103
arithmetic_operator date | BETWEEN date AND date;
106
arithmetic_operator _varchar(1);
111
inner_condition_bottom logical_operator inner_condition_bottom |
112
inner_condition_bottom logical_operator outer_condition_bottom ;
114
inner_condition_bottom:
116
INNR . int_field_name arithmetic_operator INNR . int_field_name |
117
INNR . date_field_name arithmetic_operator INNR . date_field_name |
118
INNR . char_field_name arithmetic_operator INNR . char_field_name;
120
null_operator: IS NULL | IS NOT NULL ;
122
logical_operator: AND | OR | OR NOT | XOR | AND NOT ;
124
arithmetic_operator: = | > | < | <> | >= | <= ;
127
EXISTS ( select_inner ) |
128
NOT EXISTS ( select_inner ) |
129
OUTR . field_name IN ( select_inner ) |
130
( OUTR . field_name , OUTR . field_name ) IN ( select_inner_two_cols ) |
131
OUTR . field_name NOT IN ( select_inner ) |
132
( OUTR . field_name , OUTR . field_name ) NOT IN ( select_inner_two_cols ) |
133
OUTR . field_name arithmetic_operator ( select_inner_one_row ) |
134
OUTR . field_name arithmetic_operator subquery_word ( select_inner ) |
135
value IN ( select_inner ) |
136
value NOT IN ( select_inner );
138
subquery_word: SOME | ANY | ALL ;
141
int_field_name | char_field_name | date_field_name ;
144
`pk` | `int_key` | `int_nokey` ;
147
`date_nokey` | `datetime_nokey` | `date_key` | `datetime_key` ;
151
`varchar_key` | `varchar_nokey` ;
159
value: digit | date | time | datetime | _varchar(1) | NULL ;