两条困惑的sql 求各位解答

两条不解的sql 求各位解答

SELECT count(*) from (SELECT uuid,create_date from tbb_api_access WHERE create_date > ‘2012-02-17’ GROUP BY uuid) as t

SELECT count(*) from (SELECT id,create_date from tbb_api_access GROUP BY uuid) as t WHERE create_date > ‘2012-02-17’

这条sql在执行结果上为什么会有差异?

如果表tbb_api_access只有一条记录 

uuid,create_date

1, ‘2012-02-11’

则你可以看到(SELECT uuid,create_date from tbb_api_access WHERE create_date > ‘2012-02-17’ GROUP BY uuid) 返回是空

而(SELECT id,create_date from tbb_api_access GROUP BY uuid) 是 1,’2012-02-11′




理解一下WHERE的执行顺序。




结果一样吧




一个是先WHERE再GROUP

另一个是先GROUP再WHERE

两条困惑的sql 求各位解答

相关文章:

你感兴趣的文章:

标签云: