如何对行进行排序?

艾哈迈德·福德(AhmedFaud)

这是我的查询:

SELECT * 
FROM `recordstouser` 
GROUP BY IdUserRecordstouser 
ORDER BY IdRecordstouser DESC;

在表中,有一个字段StatusRecordstouser可以取值0/1。所以我需要按分组的行,IdUserRecordstouser例如分组行将是一行StatusRecordstouser = 0;

例如:

id | StatusRecordstouser | IdUserRecordstouser
1    1                     2
2    1                     2
3    0                     2
4    0                     3                     

输出2行:

4 | 0 | 3
3 | 0 | 2

最正确的版本:

SELECT * FROM ( SELECT * FROM `recordstouser` WHERE StatusRecordstouser = 0 ) t 
JOIN detailtousers ON detailtousers.idDetailToUsers = t.IdUserRecordstouser 
WHERE t.IdtoUserRecordstouser = 458 
GROUP BY t.IdUserRecordstouser ORDER BY t.id DESC

错误:

Unknown column 't.IdtoUserRecordstouser' in 'where clause'
Myahl

试试这个。我知道您说过您不能使用WHERE,但这有些不同。您可以在此处查看结果:http : //sqlfiddle.com/#!2/8b5a0/11

SELECT *
FROM 
(
  SELECT * 
  FROM `recordstouser`
  WHERE StatusRecordstouser = 0
) t
GROUP BY t.IdUserRecordstouser
ORDER BY t.id DESC;

您也可以ORDER BY t.StatusRecordstouser ASC代替ORDER BY t.id DESC获得0的第一个。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章