sql中 group by 的优先级高 还是 join的优先级高?

2025-02-25 20:55:30
推荐回答(3个)
回答1:

在没有子查询的情况下,join的优先级高。
比如:
select a.id,count(1) from a join b on a.id=b.id group by a.id
这种情况join的优先级高。
但是在有子查询的情况下比如:
select * from a join (select id,count(1) from b group by id) t on a.id=t.id
这种情况的话,group by 的优先级高,主要还是看情况。
总的来说join的优先级高一些,子查询是因为有()的作用。

回答2:

join的优先级高,SELECT 语句处理顺序:

  1. FROM

  2. ON

  3. JOIN

  4. WHERE

  5. GROUP BY

  6. HAVING

  7. SELECT

  8. DISTINCT

  9. ORDER BY

回答3:

SQL中的优先级:join>where>group
但在select 列表中出现的未使用聚合函数的都要在group by 中出现,
如果不复合上述条件,SQL语法解析是会报错的(这和优先级无关)