【MYSQL】一直以为下面这条语句会出错,但是执行没错误!

糖炒唐朝栗子 2017-05-23 03:31:42
一直以为下面这条语句会出错,但是执行没错误
SELECT article, dealer, price
FROM shop s1
WHERE price = (SELECT MAX(s2.price)
FROM shop s2
WHERE s1.article = s2.article);

SELECT article, dealer, price
FROM shop s1
WHERE price in (SELECT MAX(s2.price)
FROM shop s2
WHERE s1.article = s2.article);

括号中内容是上面子查询的结果:
select * from shop where price = (3.99,10.99,1.69,19.95);//出错
select * from shop where price in (3.99,10.99,1.69,19.95);

语句一的子查询是查出一个就比较 还是全查出来再进行比较,
...全文
133 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2017-05-23
  • 打赏
  • 举报
回复
那个语句每次只会返回一个值,如果没有加max返回的会是个集合,加了max就是每次返回符合条件的最大值
ACMAIN_CHM 2017-05-23
  • 打赏
  • 举报
回复
会执行SELECT article, dealer, price FROM shop s1这么多次。
糖炒唐朝栗子 2017-05-23
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
SELECT article, dealer, price FROM shop s1 WHERE price = (SELECT MAX(s2.price) FROM shop s2 WHERE s1.article = s2.article); 红色部门只会返回一个值。
这条语句会执行几次?是article的个数?
ACMAIN_CHM 2017-05-23
  • 打赏
  • 举报
回复
SELECT article, dealer, price FROM shop s1 WHERE price = (SELECT MAX(s2.price) FROM shop s2 WHERE s1.article = s2.article); 红色部门只会返回一个值。

56,866

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧