自学SQL 求前辈指点我的难题
由于刚接触SQL 很多问题不懂 请各位指点我的理解:
当SQL语句执行之后,系统生成一张表(你怎么连接的就怎么生成),然后由SELECT语句选择要显示的字段。Group by是对SQL语句生成的表进行操作的,而Having语句是对SELECT语句筛选显示出来的结果做操作的。
如果这样理解对的话
SELECT S.姓名
FROM S,SC
WHERE S.学号=SC.学号
GROUP BY S.姓名
与
SELECT S.姓名
FROM S,SC
WHERE S.学号=SC.学号
GROUP BY S.姓名
HAVING COUNT(S.学号)>=2
的结果为什么是相同的呢?
第二个查询语句里SELECT筛选出来的结果里只有"姓名"那么HAVING如何能COUNT(学号)呢?学号并不在显示的结果里面啊?