根据mysql表中的多个字段查找多条记录
我有mysql产品表。其中包含id、名称、sku、程序、buyurl等字段名。现在我想查找基于sku但具有不同程序名的重复记录。我实际上是在做价格比较功能。 这是我查找重复记录的代码,这很好,但我的问题是它有相同的程序名,并且我需要它用于不同的应用程序 从产品中选择id、名称、products.sku 内部联接从产品中选择sku 按产品上countsku>1 dup的sku分组。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和不同的计划根据mysql表中的多个字段查找多条记录,mysql,sql,Mysql,Sql,我有mysql产品表。其中包含id、名称、sku、程序、buyurl等字段名。现在我想查找基于sku但具有不同程序名的重复记录。我实际上是在做价格比较功能。 这是我查找重复记录的代码,这很好,但我的问题是它有相同的程序名,并且我需要它用于不同的应用程序 从产品中选择id、名称、products.sku 内部联接从产品中选择sku 按产品上countsku>1 dup的sku分组。sku=dup.sku 样本数据: id | name | sku | programme | buyurl 1 |
任何帮助都将不胜感激。如果我理解正确,此查询将适用于您:
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
)
如果我理解正确,此查询将适用于您:
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
)
你可以试试
选择p.id、名称、sku、计划、购买URL
从…起
选择MINt1.id
从产品t1连接到产品t2
在t1.sku=t2.sku上
和t1.program t2.program
按t1.sku、t1.PROGRAME分组
q加入产品p
关于q.id=p.id
输出:
| ID | NAME | SKU | PROGRAMME | BUYURL |
|----|------|-----|-----------|--------------|
| 1 | pro1 | 123 | KFC | kfc.com |
| 2 | pro2 | 123 | McDonald | mcdonald.com |
这里是演示您可以尝试
选择p.id、名称、sku、计划、购买URL
从…起
选择MINt1.id
从产品t1连接到产品t2
在t1.sku=t2.sku上
和t1.program t2.program
按t1.sku、t1.PROGRAME分组
q加入产品p
关于q.id=p.id
输出:
| ID | NAME | SKU | PROGRAMME | BUYURL |
|----|------|-----|-----------|--------------|
| 1 | pro1 | 123 | KFC | kfc.com |
| 2 | pro2 | 123 | McDonald | mcdonald.com |
这是演示一张表,为什么要加入?您可以建议其他解决方案吗?一张表,为什么要加入?您可以建议其他解决方案吗?现在查看示例数据查看示例数据now@MShahzadKhan有帮助吗?你的问题需要更多帮助吗?@MShahzadKhan有帮助吗?你的问题需要更多的帮助吗?