Mysql 两列中的不同值

Mysql 两列中的不同值,mysql,Mysql,我在mysql中有一个查询 select f1,f2,f3 from tableName; 我只想删除字段f1和f2中的重复值 我已经厌倦了如下 select f1,f2,f3 from tableName group by f1,f2; 但它只会删除f1中的重复项。任何人都可以建议我如何删除f1和f2中的重复项 topic_id topic_name question_type 2237 Understanding Diversity

我在mysql中有一个查询

select f1,f2,f3 from tableName;
我只想删除字段f1和f2中的重复值

我已经厌倦了如下

select f1,f2,f3 from tableName
group by f1,f2;
但它只会删除f1中的重复项。任何人都可以建议我如何删除f1和f2中的重复项

topic_id    topic_name                    question_type
2237    Understanding Diversity           Comprehensive
2237    Understanding Diversity           Easy
2237    Understanding Diversity           Application
44315   Bhasha, boli, lipi, or Vayakaran  Intermediate
以上是仅在问题类型列中具有不同值的示例输出 这里我想删除问题类型和主题id中的重复项

预期输出:具有主题id和问题类型的不同值

 44315  Bhasha, boli, lipi, or Vayakaran  Intermediate
 2237   Understanding Diversity           Comprehensive

我的SQL确实不是很好,但我认为您需要执行所谓的嵌套SELECT语句

这是手册的参考资料

这将使SQL看起来像这样

SELECT f1,f2,f3 FROM (SELECT f1,f2,f3 FROM tableName AS table1 GROUP BY f1) AS table2 GROUP BY f2;

请注意,我必须使用AS来创建别名,否则tableName将与父SQL select冲突。

您就快到了-您还需要对最后一列进行分组。我只能猜测其用法,因此我添加了一个分类的涵盖问题类型摘要,这可能有助于搜索或输出:

SELECT
  topic_id,
  topic_name,
  GROUP_CONCAT(DISTINCT question_type ORDER BY question_type) AS question_types
FROM tableName
GROUP BY topic_id, topic_name;
输出为:

'2237', 'Understanding Diversity', 'Application,Comprehensive,Easy'
'44315', 'Bhasha, boli, lipi, or Vayakaran', 'Itermediate'

给出样本数据和预期结果。现在你的问题还不完全清楚,期望的结果是什么?我的SQL真的不是很好,实际上它很好。任何成熟的DBMS都不会运行错误的查询。所以它很好,至少因为它允许运行没有意义的查询,我发布的SQL中没有语法错误。因此,请解释什么是不正确的部分,而不是否决基于此查询的答案,该查询在MySQL Workbench中执行得很好。选择*从*从收据中选择*作为表1按智能\u类别\u id分组作为表2按智能\u供应商\u id分组;1我没有否决2所有成熟的DBMS都不允许您选择GROUP BY中未使用或聚合函数中未使用的任何内容这是ANSI SQL中描述的预期行为。在您的例子中,当您按f1分组时,应该返回哪个f2和f2?Mysql允许这样做,但仍然毫无意义是的,我的错。我明白你在说什么。无论内部选择提供什么,外部选择都将按F2分组。如果使用F1、F2选择外部组,它会工作吗?它可以在mysql中以任何方式工作,但它仍然会为GROUP BY子句或聚合函数中未使用的列返回不可预测的值。此查询的运行方式与mysql控制台上的运行方式完全相同。您可能有不同的问题-您可以发布错误消息吗?