我有一个由no(auto increment)
,user(varchar)
,timein (timestamp)
,timeout (timestamp)
组成的数据库表。
我想获得多个用户超时和超时,但在获取时遇到一些问题。
我能得到的最接近的是:
SELECT * FROM userdata WHERE no IN (SELECT MIN(no) FROM userdata GROUP BY user)
UNION
SELECT * FROM userdata WHERE no IN (SELECT MAX(no) FROM userdata GROUP BY user)
我得到的输出是:
[{"no":"1","user":"Alan","timein":"2017-01-12 12:31:19","timeout":"0000-00-00 00:00:00"},{"no":"3","user":"Alan","timein":"2017-01-12 12:34:00","timeout":"2017-01-12 12:34:00"}]
我有什么办法可以让不同的用户(因此输出不会重复)并在单行SQL中显示MIN(timein)和MAX(timeout)?
所需的输出:{“ user”:“ Alan”,“ timein”:“ 12:31:19”,“ timeout”:“ 12:34:00”}
|---------------------|------------------|------------|------------|
| no | user | timein | timeout |
|---------------------|------------------|------------|------------|
| 1 | Alan |12:31:19 | 12:31:19 |
|---------------------|------------------|------------|------------|
| 2 | Bill |12:33:00 | 12:33:00 |
|---------------------|------------------|------------|----------- |
| 3 | Alan |12:34:00 | 12:34:00 |
|---------------------|------------------|------------|----------- |
最佳答案
SELECT user, MIN(timein), MAX(timeout)
FROM userdata
GROUP BY user
尝试这样做,使用group by语句,也许可以为您提供帮助。
关于mysql - SQL SELECT非重复查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41605610/