mssql联表查询
要查询数据库其中三个表表名:title表:wen1表:wen2表名wen1和wen2是存取文章内容,由于文章数目过多,进行分表存取,有列名body,title,postu...
要查询数据库其中三个表
表名:title
表:wen1
表:wen2
表名wen1和wen2是存取文章内容,由于文章数目过多,进行分表存取,有列名body,title,postusername,userid
表名title里记录文章标题列title,作者列username,作者列userID,文章所在所据库列wentable,wentable列中有wen1,wen2这样的数据
如何用一条查询命令按时间查询所有文章?
时间表为所有表相同,都有列名dateandtime
关健字是什么意思? 展开
表名:title
表:wen1
表:wen2
表名wen1和wen2是存取文章内容,由于文章数目过多,进行分表存取,有列名body,title,postusername,userid
表名title里记录文章标题列title,作者列username,作者列userID,文章所在所据库列wentable,wentable列中有wen1,wen2这样的数据
如何用一条查询命令按时间查询所有文章?
时间表为所有表相同,都有列名dateandtime
关健字是什么意思? 展开
4个回答
展开全部
你的意思应该是:
title表中wentable列中是wen1的话就去wen1表查询文章信息
title表中wentable列中是wen2的话就去wen2表查询文章信息
所以sql如下:
select * from(
select a.title,a.username,a.userID,b.body,b.postusername,b.dateandtime from title a, wen1 b where a.userID=b.userid and a.dateandtime=b.dateandtime and a.wentable='wen1'
union all
select a.title,a.username,a.userID,b.body,b.postusername,b.dateandtime from title a, wen2 b where a.userID=b.userid and a.dateandtime=b.dateandtime a.wentable='wen2'
)as tmp where dateandtime='你想要的时间'
说明:
1、上面的sql的主要意思是先查询title表中wentable列中是wen1的数据和wen1表关联,关联字段是 userid 和 dateandtime。
2、再按照同样的方法查询title表中wentable列中是wen2的数据和wen2表关联,关联字段是 userid 和 dateandtime。
3、把1和2 union all 后作为一个结果,在这个结果中查询你想要的时间的文章信息。
---
以上,希望对你有所帮助。
title表中wentable列中是wen1的话就去wen1表查询文章信息
title表中wentable列中是wen2的话就去wen2表查询文章信息
所以sql如下:
select * from(
select a.title,a.username,a.userID,b.body,b.postusername,b.dateandtime from title a, wen1 b where a.userID=b.userid and a.dateandtime=b.dateandtime and a.wentable='wen1'
union all
select a.title,a.username,a.userID,b.body,b.postusername,b.dateandtime from title a, wen2 b where a.userID=b.userid and a.dateandtime=b.dateandtime a.wentable='wen2'
)as tmp where dateandtime='你想要的时间'
说明:
1、上面的sql的主要意思是先查询title表中wentable列中是wen1的数据和wen1表关联,关联字段是 userid 和 dateandtime。
2、再按照同样的方法查询title表中wentable列中是wen2的数据和wen2表关联,关联字段是 userid 和 dateandtime。
3、把1和2 union all 后作为一个结果,在这个结果中查询你想要的时间的文章信息。
---
以上,希望对你有所帮助。
展开全部
select * from title left outer join wen1 on title.wentable=wen1.关键字
left outer join wen1 on title.wentable=wen2.关键字
你给的还不够详细,还有时间,在那个表里?
不过关键是 title表左全选连接wen1和wen2
left outer join wen1 on title.wentable=wen2.关键字
你给的还不够详细,还有时间,在那个表里?
不过关键是 title表左全选连接wen1和wen2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个很好解决呀~,3个表,在每个表中,至少有一个字段是文章编号的,我不知道你的字段名是什么,现假定为w_id,那么以下查询就可以实现你的要求
因为表wen1和wen2结构完全一样,只是分开保存数据,那么我们可以合并来查询
select a.* ,b.body,b.postusername, b.userid from title a left join
(select w_id,body,postusername,userid from wen1
union all
select w_id,body,postusername,userid from wen2
) b on a.w_id=b.w_id
看你需要那些字段,可以自己修改添加
因为表wen1和wen2结构完全一样,只是分开保存数据,那么我们可以合并来查询
select a.* ,b.body,b.postusername, b.userid from title a left join
(select w_id,body,postusername,userid from wen1
union all
select w_id,body,postusername,userid from wen2
) b on a.w_id=b.w_id
看你需要那些字段,可以自己修改添加
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询