我有三個表分別爲A,B和C.MySQL的查詢返回錯誤結果
架構和值表A:
UID CITY NAME
0 Bangalore UserA
1 Hyderabad UserB
架構和表B值:
UID JID DETAILS
0 1 Some Text
0 2 Some Text
1 3 Some Text
表C的圖表和值:
UID JID Applied
0 3 Yes
1 1 Yes
現在,我需要把所有的三個表,使得UID = 0的細節,並從第三個表retreive的JID C.
我已經寫了下面的MySQL查詢這樣做:
select
a.uid,
a.city,
a.name,
b.jid,
b.details
from
tableB b
INNER JOIN tableA a on b.uid=a.uid
where
jid in(
select c.jid
from tableC,tableB
where tableC.uid=0 and tableC.jid=tableB.jid
);
這給了我下面的輸出:
UID CITY NAME DETAILS APPLIED
0 BANGALORE UserA sometext yes
但現在,如果我想這是不存在的第三個表C的紀錄,那就是在這種情況下JID 2和3,我無法從下面得到正確的結果查詢。
select
a.uid,
a.city,
a.name,
b.jid,
b.details
from
tableB b
INNER JOIN tableA a on b.uid=a.uid
where jid in(
select c.jid
from tableC,tableB
where tableC.uid=0 and tableC.jid!=tableB.jid
);
基本上我想在這裏實現的是以下scenario.TableA =用戶protfolio.TableB =喬布斯發表users.TableC =施加的對用戶的作業(經鑑定JID(JobIDs))。現在單個用戶可以申請許多工作。每當用戶申請工作時,就會輸入第三個TABLEC,它記錄哪個用戶申請了哪個工作。現在,我有用於應用工作的數據,並且我需要查詢未應用的工作。
請你指導一下我到底出錯的地方。
但是'JID = 3'出現在第三個表。你的意思是隻返回'JID = 2'嗎? –
是的。返回JID 1和2的詳細信息。因爲1和2 JID不存在於tableC中與tableC相對應。 – Ravikanth