2014-09-24 144 views
0

我需要一個SQL查詢論壇MySQL查詢

幫我這個表(post_table):

+----+---------+--------+ 
| id | topicId | userId | 
+----+---------+--------+ 
| 1 | 1  | kalle | 
| 2 | 1  | pelle | 
| 3 | 2  | laban | 
| 4 | 2  | kalle | 
| 5 | 2  | kalle | 
| 6 | 2  | kalle | 
| 7 | 1  | kalle | 
| 8 | 1  | kalle | 
| 9 | 2  | laban | 
| 10 | 1  | laban | 
| 11 | 2  | kalle | 
| 12 | 2  | kalle | 
| 13 | 3  | laban | 
| 14 | 1  | kalle | 
| 15 | 2  | kalle | 
| 16 | 1  | kalle | 
| 17 | 3  | laban | 
| 18 | 4  | laban | 
| 19 | 5  | laban | 
| 20 | 6  | pelle | 
+----+---------+--------+ 

我想只得到其中userid「卡勒」還沒看完後的行,他們是

+----+---------+--------+ 
| id | topicId | userId | 
+----+---------+--------+ 
| 13 | 3  | laban | 
| 17 | 3  | laban | 
| 18 | 4  | laban | 
| 19 | 5  | laban | 
| 20 | 6  | pelle | 
+----+---------+--------+ 

topicId 1的用戶id 「卡勒」 的ID已經被讀取1,7,8,14

topicId 2 alread y通過userId「kalle」in id讀取4,5,6,11,12,15

然後我還想獲取topicId中的唯一值,id 13或17可以顯示,但不能同時顯示。

我希望你明白我之後

回答

0
SELECT * FROM POST_TABLE WHERE ID IN 
(
     SELECT MAX(ID) FROM POST_TABLE WHERE TOPICID NOT IN 
       (
       SELECT DISTINCT TOPICID FROM POST_TABLE WHERE USERID ='kalle' 
      ) 
     GROUP BY TOPICID 
) 
+0

這是快是。它工作得很好,謝謝! – jOOc 2014-09-24 17:42:55

+0

這是一個可讀的描述,它爲什麼會起作用,對未來的讀者會有所幫助。 – JBCP 2014-09-24 18:02:17