2013-06-26 77 views
2

這將不顯示結果使用內部連接

SELECT IMSLogin.AccountType, IMSLogin.Status, Registration.UsrFLname, Registration.UsrEmail, Employee.EMPID, Students.STUID, Employee.EMPDEPT, Franchise.FrArea, Franchise.FrName 
FROM Registration 
INNER JOIN IMSLogin ON Registration.RegId = IMSLogin.RegId 
INNER JOIN Employee ON Registration.RegId = Employee.RegId 
INNER JOIN Students ON Registration.RegId = Students.RegId 
INNER JOIN Franchise ON Registration.RegId = Franchise.RegId 

但是,如果我在下面給出,將給予正確的結果

SELECT Registration.UsrFLname, Registration.UsrEmail, Students.STUID, Students.Pay_type, IMSLogin.AccountType, IMSLogin.Status 
FROM IMSLogin 
INNER JOIN Registration ON IMSLogin.RegId = Registration.RegId 
INNER JOIN Students ON Registration.RegId = Students.RegId 

我的表選擇從多個表中的SQL Server不同領域:

Registration(RegId,PK) 
IMSLogin(RegId, FK) 
Students(RegId,FK) 
Franchise(RegId,FK) 
Employee(RegID,FK) 

我想在gridview中顯示它,但我需要正確的查詢,我不知道如何使用inne r加入?

plz幫助....

謝謝...

+1

檢查你的員工和特許經營加盟。您可能需要一些左連接。 –

+0

@kostasch。是的,這是問題....我給所有的左連接,而不是內心.......謝謝你..... – user72

+0

不客氣。 :) –

回答

1

嘗試這一個 -

SELECT 
     l.AccountType 
    , l.[Status] 
    , r.UsrFLname 
    , r.UsrEmail 
    , e.EMPID 
    , s.STUID 
    , e.EMPDEPT 
    , f.FrArea 
    , f.FrName 
FROM dbo.Registration r 
JOIN dbo.IMSLogin l ON r.RegId = l.RegId 
LEFT JOIN dbo.Students s ON r.RegId = s.RegId 
LEFT JOIN dbo.Employee e ON r.RegId = e.RegId 
LEFT JOIN dbo.Franchise f ON r.RegId = f.RegId 
0

看來你的數據庫設計較差。你應該有一個用戶表,然後有關於學生,僱員或特許經營的具體信息。你的問題是,沒有人可能同時在僱員,學生和特許經營。您將需要所有這三個表中的所有可能的左連接。

+0

我有同樣的....我的問題是與左,但我只用INNER ....我gat的答案... – user72