如何将五个表用Left Join得到的查询结果进行筛选?

CityHost 2003-05-08 11:22:58
现有五个表T1,T2,T3,T4,T5,结构如下,其中T2,T3,T4,T5结构一样:
T1
---------------------------
T1ID uniqueidentifier,
Name varchar,
Num Varchar

T2,T3,T4,T5
---------------------------
ID int IDENTITY(1,1),
T1ID uniqueidentifier,
Memo Text
T1与T2通过T1ID进行连接,1对多
T1与T3,T4,T5也是通过T1ID进行连接,但是1对1
现在的问题是,如果用*=将5个表连接起来,如果T2中有2个以上记录那么在
结果中,一个人的信息就会出现多次,请问怎样让一个人信息之出现一次?
由DISTINCT不行,要通过T1ID进行筛选。
...全文
330 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
caiyunxia 2003-05-11
  • 打赏
  • 举报
回复
需要什么样的结果?
CityHost 2003-05-11
  • 打赏
  • 举报
回复
自己顶
CityHost 2003-05-11
  • 打赏
  • 举报
回复
如果有多条同一人的记录显示,只要第一条。
CityHost 2003-05-09
  • 打赏
  • 举报
回复
还有其他的方法吗?
psxfghost 2003-05-09
  • 打赏
  • 举报
回复
只取T2表中ID最大的人的数据:
select T1ID,ID,Memo from T1 a,(select T1ID,ID,Memo from (select T1ID,max(ID) as ID,Memo from T2 b where b.T1ID=T1ID)) c where a.T1ID=c.T1ID union select T1ID,ID,Memo from T1,T3 where T1.T1ID=T3.T1ID union select T1ID,ID,Memo from T1,T4 where T1.T1ID=T4.T1ID union select T1ID,ID,Memo from T1,T5 where T1.T1ID=T5.T1ID

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧