Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据mysql表中的多个字段查找多条记录_Mysql_Sql - Fatal编程技术网

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

根据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 |

我有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和不同的计划


任何帮助都将不胜感激。

如果我理解正确,此查询将适用于您:

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有帮助吗?你的问题需要更多的帮助吗?