欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

MySQL多表查詢實訓(xùn)題

李中冰2年前12瀏覽0評論

MySQL多表查詢是數(shù)據(jù)庫中非常重要的一種查詢方式,經(jīng)常會在實際工作中用到。下面來介紹一個實訓(xùn)題目,通過該題目的練習(xí)可以加深對MySQL多表查詢的理解。

題目描述:

假設(shè)有兩張表,USERS表和ORDERS表,表結(jié)構(gòu)如下:
USERS表:
user_id  int(11) NOT NULL AUTO_INCREMENT,
username varchar(50) NOT NULL,
email    varchar(50) NOT NULL,
password varchar(128) NOT NULL,
PRIMARY KEY (user_id)
ORDERS表:
order_id   int(11) NOT NULL AUTO_INCREMENT,
user_id    int(11) NOT NULL,
order_date datetime NOT NULL,
order_num  int(11) NOT NULL,
PRIMARY KEY (order_id)
編寫SQL語句實現(xiàn)以下查詢:
1. 查詢用戶名為Tom的用戶所有訂單的訂單號和訂單日期。
2. 查詢訂單數(shù)量大于等于3的用戶的用戶名和訂單數(shù)量。
3. 查詢有訂單的用戶數(shù)。

解題思路:

1. 需要聯(lián)結(jié)USERS表和ORDERS表,并通過WHERE條件限定用戶名為Tom的用戶。
2. 仍然是聯(lián)結(jié)USERS表和ORDERS表,通過GROUP BY語句按照用戶名分組,通過HAVING子句篩選訂單數(shù)量大于等于3的用戶。
3. 使用COUNT函數(shù)計算ORDERS表中不重復(fù)的用戶數(shù)。

解題代碼:

1. SELECT order_num, order_date FROM ORDERS o INNER JOIN USERS u ON o.user_id = u.user_id WHERE u.username = 'Tom';
2. SELECT u.username, COUNT(*) AS order_count FROM ORDERS o INNER JOIN USERS u ON o.user_id = u.user_id GROUP BY u.username HAVING order_count >= 3;
3. SELECT COUNT(DISTINCT user_id) FROM ORDERS;

以上是關(guān)于MySQL多表查詢實訓(xùn)題的詳細介紹和解題思路及代碼,希望對大家有所幫助。