目錄
一:目的
1、想知道::常見查詢示例
二、參考
1、MySQL 8 的學習——7常見查詢示例
https://blog.csdn.net/zjy_android_blog/article/details/81741916
①總結:good:很好,我操作就是按照作者的來進行練習的,
三、操作
1、創建一個可供測試的表
CREATE TABLE shop(article int(4) unsigned zerofill default '0000' not null,
-> dealer char(20) default '0000' not null,
-> dealer char(20) default '0000' not null,\c
CREATE TABLE shop(article int(4) unsigned zerofill default '0000' not null,
-> dealer CHAR(20) DEFAULT '' NOT NULL,
-> price DOUBLE(16,2) DEFAULT '0.00'NOT NULL,
-> PRIMARY KEY(article,dealer));
INSERT INTO shop VALUES
-> (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
-> (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
2、查詢一下 shop 表
SELECT *FROM shop;
3、列的最大值:查詢最高的 article 編號
SELECT MAX(article) AS article FROM shop;
4、查詢某列最大值的行
①方法一:
任務:查找最昂貴文章的編號,經銷商和價格。
這可以通過子查詢輕鬆完成:
##任務:查找最昂貴文章的編號,經銷商和價格。
##這可以通過子查詢輕鬆完成:
SELECT article ,dealer,price FROM shop WHERE price=(SELECT MAX(price) FROM shop);
②方法二:
查詢某列最大值的行:其他解決方案是使用a LEFT JOIN
或者按價格降序排序所有行,並使用特定於MySQL的LIMIT
子句獲取第一行:
SELECT s1.article ,s1.dealer,s1.price FROM shop s1 LEFT JOIN shop s2 ON s1.price<s2.price WHERE s2.article IS NULL;
③方法三:使用特定於MySQL的LIMIT
子句獲取第一行
SELECT article,dealer,price FROM shop ORDER BY price DESC LIMIT 1;
5、每組最大列數:找到每篇文章的最高價格。
SELECT article,MAX(price) AS price FROM shop GROUP BY article;
6、保持某一列的分組最大值的行
任務:對於每篇文章,找到價格最貴的經銷商或經銷商。
這個問題可以通過像這樣的子查詢來解決:
##對於每篇文章,找到價格最貴的經銷商或經銷商。
##這個問題可以通過像這樣的子查詢來解決:
SELECT article,dealer,price FROM shop s1 WHERE price=(SELECT MAX(s2.price)FROM shop s2 WHERE s1.article=s2.article);