数据库中如何写联表查询的sql?
程序员文章站
2022-06-21 21:00:27
一 联表查询的关键在于:能够知道最后联表之后的一张大表是怎么样的。几个表的数据是个什么对应关系。
二 举例说明:查询已办
需要关联的表有:oa_fw_data gy_user gy_departme...
一 联表查询的关键在于:能够知道最后联表之后的一张大表是怎么样的。几个表的数据是个什么对应关系。
二 举例说明:查询已办
需要关联的表有: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
上一篇: MSSQL如何将查询结果拼接成字符串
下一篇: AES加密解密
推荐阅读
-
用SQL语句查询数据库中某一字段下相同值的记录方法
-
sql查询表中根据某列排序的任意行语句
-
Sqlserver数据库中char、varchar、nchar、nvarchar的区别及查询表结构
-
SQL Server 数据库调整表中列的顺序操作方法及遇到问题
-
Android中的SQL查询语句LIKE绑定参数问题解决办法(sqlite数据库)
-
我们在删除SQL Sever某个数据库表中数据的时候,希望ID重新从1开始,而不是紧跟着最后一个ID开始需要的命令
-
sql 查询 一张表里面的数据 在另一张表中是否存在 和 比对两个集合中的差集和交集(原创)
-
数据库(SQL Server )经典例题(二):对S表、P表、J表、SPJ表的操作——单表查询
-
SQL数据库基础知识、SQL中的数据类型、数据表管理、SQL中运算符和注释
-
SQLSERVER查询整个数据库中某个特定值所在的表和字段的方法