2014-12-04 57 views
2

我在SQL这种类型的数据库表的有关SQL行筛选

id | state | msg | userid | time | 
1 |unread | hi | 1 | time | 
2 |unread |hello| 1 | time | 
3 |unread | hi | 2 | time | 
4 | read | hi | 2 | time | 

我有传导打印行

Where state=unread 

现在输出

= userid 1 send you 'hi' 
= userid 1 send you 'hello' 
= userid 2 send you 'hi' 

但我想以这种方式输出

= userid 1 send you 'hello' 
= userid 2 send you 'hi' 

删除同一用户ID行只能选择(使用SQLI PHP)

回答

0

试试这最后一个:

SELECT a.id, a.state, a.msg, a.userid, a.time 
FROM tableA a 
INNER JOIN (SELECT a.userid, MAX(a.id) id 
      FROM tableA a 
      WHERE a.state = 'unread' 
      GROUP BY a.userid 
      ) AS b ON a.userid = b.userid AND a.id = b.id; 
+0

我可以使用SELECT * – 2014-12-04 06:12:35