继续做以下的前期准备工作:
新建一个测试数据库TestDB;
create database TestDB;
创建测试表table1和table2;
CREATE TABLE table1
(
customer_id VARCHAR ( 10 ) NOT NULL ,
city VARCHAR ( 10 ) NOT NULL ,
PRIMARY KEY (customer_id)
)ENGINE = INNODB DEFAULT CHARSET = UTF8;
CREATE TABLE table2
(
order_id INT NOT NULL auto_increment,
customer_id VARCHAR ( 10 ),
PRIMARY KEY (order_id)
)ENGINE = INNODB DEFAULT CHARSET = UTF8;
插入测试数据;
INSERT INTO table1(customer_id,city) VALUES ( ‘ 163 ‘ , ‘ hangzhou ‘ ); INSERT INTO table1(customer_id,city) VALUES ( ‘ 9you ‘ , ‘ shanghai ‘ ); INSERT INTO table1(customer_id,city) VALUES ( ‘ tx ‘ , ‘ hangzhou ‘ ); INSERT INTO table1(customer_id,city) VALUES ( ‘ baidu ‘ , ‘ hangzhou ‘ ); INSERT INTO table2(customer_id) VALUES ( ‘ 163 ‘ ); INSERT INTO table2(customer_id) VALUES ( ‘ 163 ‘ ); INSERT INTO table2(customer_id) VALUES ( ‘ 9you ‘ ); INSERT INTO table2(customer_id) VALUES ( ‘ 9you ‘ ); INSERT INTO table2(customer_id) VALUES ( ‘ 9you ‘ ); INSERT INTO table2(customer_id) VALUES ( ‘ tx ‘ ); INSERT INTO table2(customer_id) VALUES ( NULL );
准备工作做完以后,table1和table2看起来应该像下面这样:
mysql > select * from table1;
+ -- -----------+----------+
| customer_id | city |
+ -- -----------+----------+
| 163 | hangzhou |
| 9you | shanghai |
| baidu | hangzhou |
| tx | hangzhou |
+ -- -----------+----------+
4 rows in set ( 0.00 sec)
mysql > select * from table2; + -- --------+-------------+ | order_id | customer_id | + -- --------+-------------+ | 1 | 163 | | 2 | 163 | | 3 | 9you | | 4 | 9you | | 5 | 9you | | 6 | tx | | 7 | NULL | + -- --------+-------------+ 7 rows in set ( 0.00 sec)
准备SQL逻辑查询测试语句
SELECT a.customer_id, COUNT (b.order_id) as total_orders
FROM table1 AS a
LEFT JOIN table2 AS b
ON a.customer_id = b.customer_id
WHERE a.city = ‘ hangzhou ‘
GROUP BY a.customer_id
HAVING count (b.order_id) < 2
ORDER BY total_orders DESC ;
使用上述SQL查询语句来获得来自杭州,并且订单数少于2的客户。
Mysql基础(十二):sql语句执行步骤详解(一)准备工作
标签:详解 前期准备 sql查询语句 步骤 arch cond sql base ota
查看更多关于Mysql基础(十二):sql语句执行步骤详解(一)准备工作的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did118372