当前位置: 移动技术网 > IT编程>数据库>MSSQL > 数据库中如何写联表查询的sql?

数据库中如何写联表查询的sql?

2018年09月12日  | 移动技术网IT编程  | 我要评论

毛超峰岳父,rtys人体艺术,刷砖平台

一 联表查询的关键在于:能够知道最后联表之后的一张大表是怎么样的。几个表的数据是个什么对应关系。

二 举例说明:查询已办

需要关联的表有:oa_fw_data gy_user gy_department oa_process_data oa_activity_data oa_activity_record

sql如下:

select ...
                oar.record_time 
                from oa_fw_data a
                left outer join gy_user c on a.fwzz = c.user_id
                left outer join gy_department d on a.fwngdw = d.department_id
                left outer join oa_process_data opd on a.fw_data_id = opd.oid
                left outer join oa_activity_data oad on oad.process_data_id = opd.process_data_id
                left outer join oa_activity_record oar on a.fw_data_id= oar.object_id and activity_code<>'back' and oar.user_id = '78014a773cb63ea9e0440003ba221bd6' and oad.activity_data_id = oar.activity_data_id 

根据业务逻辑,这个联表查询的数据的对应关系是:

oa_fw_data : gy_user : gy_department : oa_process_data : oa_activity_data : oa_activity_record

1 : 1 : 1 : 1 : n : 1

所以这张表的函数就是oa_fw_data的总数据a x n = an。

三 然后我想查询出我的已办

1 现在是oa_activity_record中的一个已办对应所有的activity_data,这个时候就要加上

oa_activity_record中的activity_data_id = oa_activity_data中的activity_data_id

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网