我在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
以上是仅在question_type列中具有不同值的样本输出 在这里,我想从question_type和topic_id
中删除重复项预期输出:同时具有topic_id和question_type不同值
44315 Bhasha, boli, lipi, or Vayakaran Intermediate
2237 Understanding Diversity Comprehensive
答案 0 :(得分:2)
你几乎就在那里 - 你也需要将最后一栏分组。我可以猜测一下使用情况,所以我添加了一个有序的question_type
摘要,可能对搜索或输出很方便:
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'
答案 1 :(得分:0)
我的SQL真的不是很好,但我认为你需要做一个所谓的嵌套SELECT语句。
这是手动参考。
http://dev.mysql.com/doc/refman/5.0/en/subqueries.html
这会使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冲突。