1
9
实际上,distinct并不限制自己为1列,基本上当您说: 选择不同的A、B 你要说的是,“给我A和B组合的独特值”。就像多列唯一索引一样 |
2
6
distinct将确保select子句中的所有值都是唯一的,而不仅仅是用户ID。如果要将结果限制为单个用户ID,则应按用户ID分组。 也许你想要的是:
|
3
2
distinct在行级别工作,而不仅仅是列级别 如果只需要一列的distinct,则必须聚合返回的其余列(min、max、sum、avg等)。
|
4
1
distinct将尝试只返回唯一的行,在您的示例中,它不会只返回每个用户ID一行。 http://dev.mysql.com/doc/refman/5.0/en/distinct-optimization.html |
5
1
你误解了。distinct修饰符适用于整行,它表示结果集中不会返回两个相同的行。 查看您的SQL,您希望在created_at列中看到返回的几个可用的值是什么(例如)?无法预测所写查询的结果。 另外,您在选择中使用了两次配置文件注释。似乎您正在尝试获取每个用户评论次数的计数。如果是这样,您要做的是使用聚合查询,按用户ID分组,并且只包括那些唯一标识用户的列以及注释计数: 从profile_comments中选择user_id,count(*),其中profile_id=1 group by user_id 如果需要,您可以向用户添加联接以获取用户名,但逻辑上,您的结果集不能包含来自配置文件注释的其他列,并且仍然只能为每个用户生成一行\id,除非这些列也以某种方式聚合: 从profile_comments中选择user_id,min(created_at)最早,max(created_at)最晚,count(*),其中profile_id=1 group by user_id |
hello_programmers · Mysql从其他表输出一列 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
Kugelfisch · 用php为数据库加密数据 1 年前 |