Mysql 从包含其他列的表中选择不同的值
我对distinct的使用有以下SQL注释: …这给了我Mysql 从包含其他列的表中选择不同的值,mysql,sql,Mysql,Sql,我对distinct的使用有以下SQL注释: …这给了我 我想去掉第一列中重复的行。我遗漏了什么?如果您希望每项内容有一行,请使用聚合。大概是这样的: SELECT question_id AS id, question_id AS object_id, MIN(created_at) AS created, MAX(created_at) AS lastmessage, 'T' AS object_type FROM responses GROUP B
我想去掉第一列中重复的行。我遗漏了什么?如果您希望每项内容有一行,请使用聚合。大概是这样的:
SELECT question_id AS id, question_id AS object_id,
MIN(created_at) AS created,
MAX(created_at) AS lastmessage,
'T' AS object_type
FROM responses
GROUP BY question_id;
谢谢戈登…你真厉害!DISTINCT将消除重复的行,但是我可以从你的截图中看到,这些不是重复的行,只是重复的问题id。正如@草莓也给你指出的那样,阅读那篇文章,然后重新修改你的问题。请提供MRE、样本数据,并解释您实际想要实现的目标,以便我们能够适当地帮助您。DISTINCT不仅适用于第一列-它适用于您选择列表中的所有列。换句话说,如果整行与结果中的其他行有任何差异,它将被视为一个不同的行。这是SQL程序员经常犯的错误。
SELECT question_id AS id, question_id AS object_id,
MIN(created_at) AS created,
MAX(created_at) AS lastmessage,
'T' AS object_type
FROM responses
GROUP BY question_id;