sql 多表查询的问题,请解释一下下面一段话,感激不禁。
- 提问者网友:自食苦果
- 2021-07-20 11:40
- 五星知识达人网友:刀戟声无边
- 2021-07-20 12:05
min(s.corp_id) corpid,是查询CORP_ID 列中的最小值并在查询结果中显示的列名为CORPID,
min(c.corp_name),是查询corp_name列中的最小值,
min(c.c_user),是查询c_user列中的最小值,
count(1) num 是加一个列名为NUM值都为1,
from hcsdhis..send_bak_200909 s,corp c 是多表连接查询并改别名分别为S ,C
where s.corp_id=c.corp_id and s.biztype=17 and s.un_record_time>='2009-09-26 00:00:00' group by s.corp_id order by s.corp_id 是查询的条件,group by是分组,order by 进行升序 (order by 默认是升序排列)
- 1楼网友:执傲
- 2021-07-20 16:06
select min(s.corp_id) corpid,min(c.corp_name),min(c.c_user),count(1) num from hcsdhis..send_bak_200909 s,corp c where s.corp_id=c.corp_id and s.biztype=17 and s.un_record_time>='2009-09-26 00:00:00' group by s.corp_id order by s.corp_id
这个sql无非将是两个表(简称s,c)以corp_id字段关联,然后按s表的corp_id 字段分组,然后再按该字段排序,根据条件最终要查出s表的corp_id,c表的corp_name和c_user,并把所有记录行数放在一个新的名为num的字段里,最终结果集列表就这4列
- 2楼网友:执傲
- 2021-07-20 15:03
min()当前列的最小值。是聚合函数的一种,
group by是分组。后面接你要根据它分组的字段
order by 进行升序 (order by 默认是升序排列)接要根据排序的字段
corp c where s.corp_id=c.corp_id ,,前面就是给了另外一个表取了别名S,
这里corp c是给corp表取了别名为c,
通过s表中的Corp_id 和C表的Corp_id,来连接s表和c表进行查询,
你是多表连接查询,查询的条件是: s.biztype=17,s表中的biztype等于17,
s.un_record_time>='2009-09-26 00:00:00',以及s表un_record的时间在('2009-09-26')之后,
group by s.corp_id order by s.corp_id 按照s表corp_id分组,和升序排列
- 3楼网友:胯下狙击手
- 2021-07-20 14:31
min()是取得当前列的最小值。
group by s.corp_id是按s.corp_id进行分组。
order by s.corp_id是按s.corp_id进行升序 。
- 4楼网友:北方的南先生
- 2021-07-20 13:47
- 5楼网友:佘樂
- 2021-07-20 13:14