2017-03-04 69 views
0

我有三個表在數據庫內加入給予列多個值

表:集團

ID,姓名

表:醫生

Id,DId,DoctorName,

表:比

標識,確實,UPLIMIT,downLimit。

當我內加入他們的行列,我正在重複的值來UPLIMIT和downlimit ,,

實際上集團相關醫生介紹,一個ID都可以multple醫生,,所以當我保存一些數據與團隊和醫生,這是所有記錄相同的數據保存,上限下限因醫生不同而不同,但是當我內部連接數據顯示與所有醫生相同時,如何跳過上限和下限如何編寫查詢..

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 

問題是當我分別檢查它與醫生身份證在醫生表,它只顯示一條記錄,當我內心加入他們顯示相同的數據,所有醫生特別是 如何加入他們?

+1

'C ratio'或'比C'?也沒有'D' – GurV

+0

比率C,沒有D表 – James

回答

0

請使用SELECT後面的DISTINCT子句。這將過濾重複項。

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 

避免將關鍵字用作表/列名是很好的做法。

+0

沒有不工作,我已經嘗試過 – James

+0

@詹姆斯,你可以請示例數據和所需的結果? – Venu

+0

嘿,我的錯誤,我比較三個表中的相同的ID是問題,現在我修改了第二個內部聯接中的查詢給出了我的結果,,謝謝你的回覆 – James

0

你表結構必須像

表:集團

ID,姓名

表:醫生

標識,DID(國外關鍵的組P表),DoctorName

表:比

標識(醫生表外鍵),UPLIMIT,downLimit。

比率表是丟失外鍵或主鍵,假設比例表的編號是外鍵

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 

這應該給你需要什麼樣的

+0

不,我認爲你不明白,是不同的醫生id,與id不同 – James

+0

那麼表格之間的鏈接是什麼? @詹姆斯 – Pream

+0

id是鏈接,這是在所有tables..and表b和c共同兩列通用,沒有,所以我犯了錯誤查詢,我現在得到它,現在查詢工作正常 – James