我有这样的查询,很好地向我展示了哪个product.model是重复的:

SELECT product.model, product_description.name, COUNT( * ) AS Count
FROM product, product_description
WHERE product.product_id = product_description.product_id
GROUP BY product.model ORDER BY COUNT
HAVING Count >1

但是我不能强制此查询显示每个重复的product.model的product_description.name的内容,以比较product_description.name

我试图在此结果上输入IN,但我得到的只是“#1241-操作数应包含1列”。 您知道如何进一步处理此结果吗?

===============>>#1 票数:0

您将需要一个子查询来做到这一点:

select 
    p.model, pd.name
from 
    product as p, product_description as pd
where 
    p.product_id = pd.product_id
    and p.model in (
        select p.model 
        from product as p, product_description as pd 
        where p.product_id = pd.product_id 
        group by p.model having count(p.name)>1)

希望这可以帮助

===============>>#2 票数:0

根据所需的结果,如果要查看产品表中哪些模型具有多个记录,然后想要查看相关的产品描述,则可以使用GROUP_CONCAT组合您的描述。

SELECT p.model, group_concat(pd.name), COUNT( 1 ) AS Count
FROM product p
  INNER JOIN product_description pd USING (product_Id)
GROUP BY p.model
HAVING COUNT(1) > 1
ORDER BY 3

SQL小提琴演示

还有其他方法可以返回不同的行,具体取决于您的需求。

  ask by Jakub Bujak translate from so

未解决问题?本站智能推荐: