私は2つのテーブル、サンプルを持っています
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.status は保留中です
- は
samples.member_idサンプルを送信しませんでした - は
votes.member_idサンプルに投票していません
例 1
たとえば、member_idが 1 の場合、結果セットは次のようになります。
2
3
samples.status where samples.sample_id = 1ではないのでpending、samples.member_id提出したsamples.sample_id4.
例 2
が 2の場合member_id、結果セットは
4
以来1-3samples.member_idを提出しています。samples.sample_id
例 3
が 3の場合member_id、結果セットは
2
3
4
samples.status where samples.sample_id = 1ではないのでpending
編集 満たす必要がある3つの条件のうち、最初の条件は次のように満たすことができます
SELECT * FROM samples
LEFT OUTER JOIN votes on samples.sample_id = votes.vote_id
WHERE samples.status='pending'
しかし、私は他の2つの条件を満たすのに苦労しています