我試着去定義一個當局按用戶名查詢:春季安全SQL查詢返回的數據太多
SELECT u.username, r.authrole FROM users u, roles r, user_role ur
WHERE u.id = ur.userid AND u.username = 'dit'
它的尷尬,但此查詢將返回錯誤的結果,我不能修復它。
結果:
username authrole
-----------------------
dit ROLE_ADMIN
dit ROLE_USER
這裏是我的表:
用戶:
id username password
---------------------------------
1 admin *****
2 dit *****
USER_ROLE:
userid roleid
---------------------
1 1
2 2
個
角色:
id authrole
---------------------
1 ROLE_ADMIN
2 ROLE_USER
UPDATE:我把這個壞查詢從這個example on github
是「結果」您預期的結果之一的比賽? –
'FROM users u JOIN user_role ur ON u.id = ur.userid JOIN role r ON r.id = ur.roleid WHERE u.username ='dit'' - 使用真正的連接而不是隱含的交叉連接,這是尤其重要的如果你不知道如何檢查你的連接是否正確。 – scragar