mysql常見的查詢語句的應用
單表操作
1.單欄位條件分組查詢
//獲取同名的人的詳細資訊
//獲取同分數的人的詳細資訊
//獲取同地區的人的姓名
分析:獲取相同的欄位,欄位條件和分組條件一致,通過where的欄位可以獲取到條目,屬於單欄位條件查詢
解://獲取同名的人的詳細資訊
SELECT * FROM test1 WHERE NAME IN (SELECT NAME FROM test1 GROUP BY NAME HAVING COUNT(NAME)>1)
2.多欄位條件分組查詢
//獲取每個地區的最高分的人的詳細資訊
//獲取各科目的最高分的詳細資訊
分析:第一反應:和第一題幾乎一致,分組後的聚合函式條件不同而已,但是屬於雙欄位條件,通過最高分不能確認條目,通過地區(科目)也不能確認條目,所以無法使用in,要關聯查詢
SELECT * FROM test1 INNER JOIN (SELECT str,MAX(age) oage FROM test1 GROUP BY str) o ON test1.str=o.str AND test1.age=o.oage
多表操作
將第一個表欄位含義拆分出一個成績表
userid對應test1.id,grade為成績,subject為科目
//獲取每個地區的最高分的人的詳細資訊
//獲取各科目的最高分的詳細資訊
分析:看到多表就慌,實際和單表一致,拿到各科目的最高分就能拿到使用者詳細資訊,單表查詢加子查詢,或者關聯查詢就可以了,拿到上面單表的程式碼改裝
SELECT * FROM cource INNER JOIN (SELECT SUBJECT,MAX(grade) ograde FROM cource GROUP BY SUBJECT) o ON cource.SUBJECT=o.SUBJECT AND cource.grade=o.ograde
此時關聯獲取使用者詳細資訊就明朗了
SELECT * FROM test1 ,
(
SELECT id,userid,grade,o.subject FROM cource INNER JOIN (SELECT SUBJECT,MAX(grade) ograde FROM cource GROUP BY SUBJECT) o
ON cource.SUBJECT=o.SUBJECT AND cource.grade=o.ograde)
v WHERE test1.id=v.userid
相關文章
- mysql查詢語句MySql
- MySQL的簡單查詢語句MySql
- mysql dba常用的查詢語句MySql
- Mysql之查詢語句MySql
- mysql查詢語句集MySql
- mysql查詢效率慢的SQL語句MySql
- mysql查詢語句5:連線查詢MySql
- mysql高階查詢語句MySql
- MySQL語句第二高的薪水查詢MySql
- 在mysql查詢效率慢的SQL語句MySql
- MySQL 查詢常用操作(0) —— 查詢語句的執行順序MySql
- MySQL內連線查詢語句MySql
- 常見的查詢操作
- MySQL中用通用查詢日誌找出查詢次數最多的語句的教程MySql
- 請教一個mysql查詢語句!!MySql
- 記一個實用的sql查詢語句SQL
- 常見通用的Join查詢
- Mysql 獲取表設計查詢語句MySql
- MySQL關於根據日期查詢資料的sql語句MySql
- MySQL查詢語句過程和EXPLAIN語句的基本概念及其最佳化MySqlAI
- MySQL資料庫:7、SQL常用查詢語句MySql資料庫
- mysql查詢語句陣列下標擷取MySql陣列
- MySQL 查詢語句執行過程淺析MySql
- mysql查詢每個班的各學科平均分的sql語句MySql
- 使用sql語句查詢平均值,使用sql語句查詢資料總條數, not in 篩選語句的使用SQL
- 面試官:MySQL 是如何執行一條查詢語句的?面試MySql
- MySQL系列之一條SQL查詢語句的執行過程MySql
- SQL mother查詢語句SQL
- sql查詢語句流程SQL
- SQL查詢語句 (Oracle)SQLOracle
- golang通過mysql語句實現分頁查詢GolangMySql
- golang透過mysql語句實現分頁查詢GolangMySql
- MySql常用30種SQL查詢語句優化方法MySql優化
- 一條查詢語句的執行流程
- SQL基礎的查詢語句烈鉍SQL
- Laravel 框架查詢執行的 SQL 語句Laravel框架SQL
- Oracle常用的系統查詢語句整理Oracle
- Oracle、MySQL常見表結構變更語句對比OracleMySql