2014-09-24 77 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