我试了很多这句话,但我无法得到我想要的结果
这是协作表:
每个协作者都应该知道有collaborator_complete =1的其他协作者与他在同一个任务中。Joint_State =“接受”
例如:
对于collabortor_ID=14,应该知道有collaborator_complete =1的1、2、11和12,并与14共享任务48。
我试着做这个陈述
它将从14不在此任务中的任务中选择合作者,就像image2中的前两行结果一样
发布于 2016-04-15 02:52:22
您可以执行JOIN
SELECT
t2.Collaborator_ID
FROM collaborative_task t1
INNER JOIN collaborative_task t2
ON t2.task_ID = t1.task_id
AND t2.collaborator_ID <> t1.collaborator_ID
WHERE
t1.collaborator_id = 14
AND t2.collaborator_complete = 1
AND t2.Join_State = 'Accept'
SQL Fiddle
发布于 2016-04-15 02:48:26
您需要查看其他行。这意味着join
、in
或exists
select ct.*
from collaborative_task ct
where collaborator_complete = 1 and join_state = 'Accept' and
collaborator_id <> 14 and
exists (select 1
from collaborative_task ct2
where ct2.task_id = ct.task_id and
ct2.collaborator_id = 14
);
https://stackoverflow.com/questions/36637411
复制相似问题