我在一个名为 id 和 name 的表产品中有列。每行都是具有单个产品代码的产品。
我想检索具有不同代码的发音相似的产品的名称和ID。有人知道这种查询的基本结构在mySQL中应该是什么样子吗?
最后一个 where 子句
应该是 HAVING 子句,而不是 where 子句。 您正在行级筛选器上使用聚合函数。
请参阅 SQL - 拥有 VS 其中
以下查询为您提供重复 2 次或更多次的产品名称:
select name, count(*) from product group by name having count(*) > 1;
下面为您提供产品的名称:
slect name from (select name, count(*) from product group by name having count(*) > 1) as many_codes;
最后,以下内容应该为您提供所需的结果:
select name, id from product where name in (slect name from (select name, count(*) from product group by name having count(*) > 1) as many_codes);