手机
当前位置:查字典教程网 >编程开发 >mysql数据库 >MySQL 查找价格最高的图书经销商的几种SQL语句
MySQL 查找价格最高的图书经销商的几种SQL语句
摘要:mysql>usetest;Databasechangedmysql>CREATETABLEshop(->articleINT(4)UNSI...

mysql> use test;

Database changed

mysql> 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));

Query OK, 0 rows affected (0.13 sec)

mysql> 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);

Query OK, 7 rows affected (0.03 sec)

Records: 7 Duplicates: 0 Warnings: 0

mysql> select * from shop;

+---------+--------+-------+

| article | dealer | price |

+---------+--------+-------+

| 0001 | A | 3.45 |

| 0001 | B | 3.99 |

| 0002 | A | 10.99 |

| 0003 | B | 1.45 |

| 0003 | C | 1.69 |

| 0003 | D | 1.25 |

| 0004 | D | 19.95 |

+---------+--------+-------+

7 rows in set (0.06 sec)

mysql> select article,max(price) from shop group by article

-> ;

+---------+------------+

| article | max(price) |

+---------+------------+

| 0001 | 3.99 |

| 0002 | 10.99 |

| 0003 | 1.69 |

| 0004 | 19.95 |

+---------+------------+

4 rows in set (0.05 sec)

mysql> select article,max(price),dealer from shop group by article;

+---------+------------+--------+

| article | max(price) | dealer |

+---------+------------+--------+

| 0001 | 3.99 | A |

| 0002 | 10.99 | A |

| 0003 | 1.69 | B |

| 0004 | 19.95 | D |

+---------+------------+--------+

4 rows in set (0.00 sec)

mysql> select article,dealer,price from shop s1

-> where price=(select max(s2.price) from shop s2

-> where s1.article=s2.article);

+---------+--------+-------+

| article | dealer | price |

+---------+--------+-------+

| 0001 | B | 3.99 |

| 0002 | A | 10.99 |

| 0003 | C | 1.69 |

| 0004 | D | 19.95 |

+---------+--------+-------+

4 rows in set (0.01 sec)

mysql> select s1.article,dealer,s1.price

-> from shop s1

-> join(

-> select article,max(price) as price from shop

-> group by article) as s2

-> on s1.article = s2.article and s1.price = s2.price;

+---------+--------+-------+

| article | dealer | price |

+---------+--------+-------+

| 0001 | B | 3.99 |

| 0002 | A | 10.99 |

| 0003 | C | 1.69 |

| 0004 | D | 19.95 |

+---------+--------+-------+

4 rows in set (0.05 sec)

mysql> select s1.article,s1.dealer,s1.price from shop s1

-> left join shop s2 on s1.article=s2.article and s1.price select s1.article,s1.dealer,s1.price,s2.* from shop s1 left join shop s2

on s1.article=s2.article and s1.price

【MySQL 查找价格最高的图书经销商的几种SQL语句】相关文章:

MySQL 性能优化的最佳20多条经验分享

MySQL与SQL的触发器的不同写法

MySQL SHOW 命令的使用介绍

MySQL 在windows上的安装详细介绍

MySQL中的SQRT函数的使用方法

MYSQL插入处理重复键值的几种方法

SQL Server中各种语句的完整语法

mysql 查看版本的方法图文演示

MySQL 获得当前日期时间的函数小结

让MySQL支持中文排序的实现方法

精品推荐
分类导航