2013-06-26 4 views
2

Это не будет отображать результатыВыберите различные поля из более чем одной таблицы в SQL Server, используя внутреннее соединение

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 

Мои таблицы :

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

Я пытаюсь отобразить его в GridView, но я нужен правильный запрос, я не знаю, как использовать этот Inne присоединиться?

Plz помощь ....

Спасибо ...

+1

Check вы соединяющую на сотрудников и франшизы. Возможно, вам понадобится левое соединение. –

+0

@kostasch. да, это была проблема ... Я отдал все, как левое, вместо INNER ....... Спасибо ..... – 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