2011-04-10 42 views
1

我有一個網站,在投票後向註冊用戶顯示投票,並將他的投票存儲在表中。 數據庫的簡單結構將是如下(有更多的領域,但他們不難有作爲的問題,所以我刪除它們):查找特定用戶尚未投票的所有民意調查

投票(pollId)

票數(pollId ,userId,vote)

現在我想運行一個MySql查詢來選擇'民意調查'表內的所有民意調查,除了當前用戶已經投票的民意調查(可以從'投票'表)

是否可以單獨使用MySql select語句,還是必須選擇al首先輪詢,然後使用一些Php邏輯來過濾已經被用戶投票的那些?

在此先感謝!

回答

0
SELECT * 
    FROM Pools 
WHERE id NOT IN (
     SELECT poolId 
     FROM Votes 
     WHERE userId = 142 
     ) 
+0

哇,那的工作非常出色!非常感謝! – 2011-04-10 10:41:32

0

嘗試這樣:

select p.pollid from polls p where p.pollid not in (select v.pollid from votes v where userId = {USERID}) 
+0

非常感謝你的配偶,這真的很好,但hsz有點快,所以我不得不選擇他:$ – 2011-04-10 10:42:14

+0

沒問題,你已經得到了你的答案:) – Rhapsody 2011-04-10 11:13:05