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查詢阻塞語句MySql
- Mysql之查詢語句MySql
- mysql查詢效率慢的SQL語句MySql
- SQL中查詢語句內的相關應用SQL
- mysql查詢語句5:連線查詢MySql
- [Mysql 查詢語句]——分組查詢group byMySql
- [Mysql 查詢語句]——查詢指定記錄MySql
- mysql高階查詢語句MySql
- MySQL基礎查詢語句MySql
- 在mysql查詢效率慢的SQL語句MySql
- MySQL語句第二高的薪水查詢MySql
- 常見的查詢操作
- MySQL 查詢常用操作(0) —— 查詢語句的執行順序MySql
- 找出Mysql查詢速度慢的SQL語句MySql
- MySQL內連線查詢語句MySql
- [Mysql 查詢語句]——集合函式MySql函式
- mysql查詢語句優化工具MySql優化
- mysql 查詢建表語句sqlMySql
- [Mysql 查詢語句]——對查詢結果進一步的操作MySql
- 常見通用的Join查詢
- MySQL中用通用查詢日誌找出查詢次數最多的語句的教程MySql
- Oracle常用的查詢語句Oracle
- MySQL、Oracle和SQL Server的分頁查詢語句MySqlOracleServer
- 記一個實用的sql查詢語句SQL
- 請教一個mysql查詢語句!!MySql
- linux下開啟mysql慢查詢,分析查詢語句LinuxMySql
- 查詢效率低下的sql的語句SQL
- 常用Sqlserver中的查詢語句SQLServer
- 複雜查詢語句的使用
- SGA區查詢的基本語句
- Mysql 獲取表設計查詢語句MySql
- 查詢操作佔用cpu很高語句
- Hql查詢語句