gpt4 book ai didi

mysql - 根据mysql表中的多个字段查找多条记录

转载 作者:行者123 更新时间:2023-11-29 04:22:54 25 4
gpt4 key购买 nike

我有 mysql 产品表。其中有字段名称,如 id、name、sku、programme、buyurl 等。现在我想根据 sku 查找重复记录,但程序名称不同。我实际上是为了价格比较功能而做的。这是我用于查找重复记录的代码,这很好,但我的问题是它具有相同的程序名称,我需要它来实现不同的目的。

SELECT  id, name, products.sku FROM products
INNER JOIN (SELECT sku FROM products
GROUP BY sku HAVING count(sku) > 1) dup ON products.sku= dup.sku

示例数据:

id | name | sku | programme | buyurl 1 | pro1 | 123 | KFC       | kfc.com 2 | pro2 | 123 | McDonald  | mcdonald.com 3 | pro3 | 456 | McDonal   | mcdonald.com 4 | pro4 | 123 | KFC       | kfc.com  

要求的输出应该是

 id | name | sku | programme | buyurl 1  | pro1 | 123 | KFC       | kfc.com 2  | pro2 | 123 | McDonald  | mcdonald.com

sku 相同,programme 不同。

我们将不胜感激。

最佳答案

如果我没理解错的话,这个查询对你有用:

SELECT p1.id, p1.name, p1.sku, p1.programme
FROM product p1 JOIN product p2
ON p1.sku = p2.sku AND p1. programme <> p2.programme

如果没有,请添加一些示例数据和预期结果。

基于样本数据,尝试这个查询:

SELECT * FROM product
WHERE id IN(
SELECT p1.id
FROM (SELECT MIN(id) as id, sku, programme FROM product GROUP BY sku, programme) p1
JOIN (SELECT MIN(id) as id, sku, programme FROM product GROUP BY sku, programme) p2
ON p1.sku = p2.sku AND p1.programme <> p2.programme
)

关于mysql - 根据mysql表中的多个字段查找多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18695849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com