2014-09-22 81 views
0

我有三個這樣的表。從一個查詢中的三個表中獲取數據

USERLOGIN

userID userPassword 
    c01  chutop 
    c02  213jkd 

SystemUser

userID  FName  LName CategoryID 
c01   Sidy  Kamal 2 
c02   Bindu  Namal 1 
c03   Sandy  Khan  3 

SystemUserCategory

CatID CatType 
1  Admin 
2  General 
3  Librarian 

當我進入userID='c01'userPassword在查詢chutop,我要在設定的結果得到的是:

userID  FName LName catType 
c01  Sidy  Kamal Genaral 

我輸入用戶名和密碼。我想獲得匹配記錄的Fname,LNamecatType。此外,我將登錄爲userID c01,輸入userID c01,密碼爲chutop。我想檢索來自UserFnameLnameuserID='c01',我想從CategorycatTypeuserID='c01'小號catID,這是2在這種情況下。

這是我的嘗試。

SELECT userFName, userLName, catID 
FROM userLogin, SystemUser, SystemUserCategory 
WHERE userLogin.userID='c001' AND userLogin.userPassword='chath'; 

它給我12條記錄,而不是1條記錄。

任何幫助糾正這個或任何查詢幫助將是非常好的。

+4

谷歌'SQL連接tutorial' – FuzzyTree 2014-09-22 14:54:43

+0

你真的存儲密碼以純文本形式? – Lamak 2014-09-22 14:56:43

+0

您需要指定表格之間的相互關係。看看這個:http://sqlzoo.net/wiki/The_JOIN_operation – jpw 2014-09-22 14:57:08

回答

1

這裏是我的答案。

SELECT userFName,UserLName,CatName 
FROM userLogin INNER JOIN SystemUser ON (userLogin.userID=SystemUSer.userID) INNER JOIN SystemUserCategory ON (SystemUser.userCatID=SystemUserCategory.catID) 
WHERE UserLogin.userID='c002' AND UserLogin.userPassword='ryan'; 

應用必要的用戶名和密碼。用戶標識和密碼正是我所添加的。

0

您必須使用內部聯接而不是從多個表中進行選擇。

像這樣:

select userFName, userLName,catID 
from userLogin UL inner join SystemUser SU 
on Ul.userId = SU.userId inner join SystemUserCategory SUC 
on SU.CatID = SUC.CatID 
-2
SELECT userFName,userLName,CATID
        FROM         USERLOGIN,SystemUser,SystemUserCategory
        WHERE         userLogin.userID ='C001 '
                AND         userLogin.userPassword = 'chath'
                AND         SystemUser.userID = USERLOGIN。用戶ID
               和        SystemUser.CategoryID = SystemUserCategory.CategoryID
0
select ul.UserId,su.FName,su.LName,suc.CatType 
from UserLogin ul 
inner join SystemUser su on ul.UserId = su.UserId 
inner join SystemUserCategory suc on su.CategoryId = suc.CatId 
where ul.userId = 'c01' and ul.[Password] = 'chutop' 

enter image description here

相關問題