我有3個表格。表a pk = userid,表b和c fk = userid。在表b上,RoleID列等於表c中的Usermanager列,但具有新值。
所以我加入表a和b下面的查詢SQL:加入表a和b,然後連接表c以獲得在c上但不在c上的結果?
select a.Username, a.Userid, b.Roleid
from NewTable a
join RoleTable b
on a.UserID=b.UserID
where b.RoleID = 2
這導致502分的記錄。
表C查詢
select *
from OldTable
where UserManager = 1
and Authorized = 1
and Status = 'A'
這導致500條記錄。
所以我試圖加入2個查詢來找到2個不在表c上但只在表a上的記錄。
謝謝。
SELECT * FROM A,其中用戶ID不在(選擇由C用戶ID) – Chuck
左連接應該得到你,只在表A中,而不是在表下的邏輯是記錄: - SELECT * FROM表A LEFT JOIN表CC ON A.Key = C.Key 其中C.Key爲NULL – Philo
'不在'是直觀的,但很慢。 –