我有两张表,样本
sample_id status member_id
1 pass 2
2 pending 2
3 pending 2
4 pending 1
和投票
vote_id sample_id member_id
1 1 1
2 1 1
3 1 5
4 2 2
samples.sample_id
和votes.vote_id
都是自动增量,samples.member_id
和votes.member_id
应加入where samples.member_id=someUserId
。
我想返回samples.sample_id的结果集
samples.member_id
未提交样本votes.member_id
尚未投票选出样本例如,如果member_id
为1,则结果集应为
2
3
由于samples.status where samples.sample_id = 1
不是pending
,samples.member_id
已提交samples.sample_id
,所以4.
如果member_id
为2,则结果集应为
4
自samples.member_id
提交samples.sample_id
1-3。
如果member_id
为3,则结果集应为
2
3
4
由于samples.status where samples.sample_id = 1
不是pending
修改 在必须满足的三个条件中,我可以通过以下
来满足第一个条件SELECT * FROM samples
LEFT OUTER JOIN votes on samples.sample_id = votes.vote_id
WHERE samples.status='pending'
但我正在努力满足其他两个条件
答案 0 :(得分:1)
SELECT sample_id
FROM samples
WHERE status = 'pending'
AND member_id <> $someUserId
AND sample_id NOT IN
(
SELECT sample_id
FROM votes
WHERE member_id = $someUserId
)