请问这个sql语句(SELECT * FROM com_live_get_record WHERE bid = 6 GROUP BY get_uid ORDER BY get_uid)和另一个sql语句 (SELECT * FROM(SELECT * FROM com_live_get_record GROUP BY get_uid ORDER BY get_uid) c WHERE c.bid = 6)查询结果为何不一样?
时间: 2024-04-18 14:27:29 浏览: 70
SQL语句中SELECT语句的执行顺序
这两个 SQL 查询语句的结果不一样是因为它们的执行顺序和逻辑不同。
第一个查询语句是先筛选出 `bid=6` 的记录,然后按照 `get_uid` 进行分组,并按照 `get_uid` 进行排序。这样得到的结果集中每个组只有一个记录,且按照 `get_uid` 排序。
而第二个查询语句是先按照 `get_uid` 进行分组,并按照 `get_uid` 进行排序,然后再从这个结果集中筛选出 `bid=6` 的记录。这样得到的结果集中可能会包含多个 `bid=6` 的记录,因为在分组之前没有进行 `bid` 的筛选。
因此,这两个查询语句得到的结果集不同。
阅读全文