我有三个表,即A,B和C。
表 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 并从第三个表 C 中检索 JID。
我写了一个下面的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
);
基本上我在这里想要实现的是以下场景。TableA=Users protfolio.TableB=用户发布的工作。TableC=用户申请了哪些工作(通过 JID(JobIDs)识别)。现在一个用户可以申请很多工作.每当用户申请工作时,都会在第三个TABLEC中输入一个条目,记录哪个用户申请了哪个工作。现在,我有申请工作的数据,我需要查询未申请的工作。
请你指导我到底哪里出错了。