内部联接为列提供多个值

时间:2017-03-04 10:00:11

标签: sql-server join

我在数据库中有三个表

表:组

  

我,姓名

表:医生

  

Id,DId,DoctorName,

表:比率

  

Id,DId,UpLimit,downLimit。

当我内心加入它们时,我正在将重复值提升到Uplimit和downlimit,

实际上Group与医生有关,一组id可以有多位医生,所以当我用Group和doctor保存一些数据时,它会保存到所有具有相同数据的记录,uplimit downlimit因医生而异,但是我内部加入它对所有医生显示相同,如何跳过uplimit和downlimit如何编写查询..

Select A.Group , B.doctor , C.Uplimit, D.downlimit from Group A
inner join Doctor B
on A.id = B.id
inner join C ratio
on A.id = c.id 

问题是当我在医生表中单独检查医生ID时,它只显示一条记录,当我内部加入时,它向所有医生显示相同的数据 如何加入他们?

2 个答案:

答案 0 :(得分:0)

请在DISTINCT之后使用SELECT子句。这将过滤重复项。

Select DISTINCT A.[Group] , B.doctor , C.Uplimit, D.downlimit 
FROM Group A
inner join Doctor B
on A.id = B.id
inner join Ratio C
on B.id = C.id

最好避免将关键字用作表/列名称。

答案 1 :(得分:0)

你的表结构必须像

表:组

  

我,姓名

表:医生

  

Id,DId(组表的外键),DoctorName

表:比率

  

Id(Doctor Table的外键),UpLimit,downLimit。

比率表缺少外键或主键,假设比率表的Id是外键

Select A.Group , B.doctor , C.Uplimit, D.downlimit from Group A
inner join Doctor B
on A.id = B.Did
inner join ratio C
on B.id = c.id 

这应该提供你需要的东西