有一张表分别有:1、article 2、dealer 3、price 三个字段
现在要查这张表中同样物品价格最贵的经销商我所不能理解的是(其实就是没有自己的思路)有几点:
1、s1.article = s2.article 这里,这里我实在不能理解都是同一张表它是怎么去比的
2、查询语句的运行顺序是怎么样的,是先运行条件呢,还是先运行select
其实归根结底就是没有思路,最好能提供一下看待这个问题的思路,谢谢!
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 |SELECT article, dealer, price
FROM shop s1
WHERE price=(SELECT MAX(s2.price)
FROM shop s2
WHERE s1.article = s2.article);
现在要查这张表中同样物品价格最贵的经销商我所不能理解的是(其实就是没有自己的思路)有几点:
1、s1.article = s2.article 这里,这里我实在不能理解都是同一张表它是怎么去比的
2、查询语句的运行顺序是怎么样的,是先运行条件呢,还是先运行select
其实归根结底就是没有思路,最好能提供一下看待这个问题的思路,谢谢!
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 |SELECT article, dealer, price
FROM shop s1
WHERE price=(SELECT MAX(s2.price)
FROM shop s2
WHERE s1.article = s2.article);
是两张一样的表
2、查询语句的运行顺序是怎么样的,是先运行条件呢,还是先运行select
先运行条件
先运行外循环FROM shop s1, 对其中每条记录进行WHERE price=(SELECT MAX(s2.price) FROM shop s2 WHERE s1.article = 2.article);的比较。