Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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
Php 将两个MySql组合成一个查询_Php_Mysql - Fatal编程技术网

Php 将两个MySql组合成一个查询

Php 将两个MySql组合成一个查询,php,mysql,Php,Mysql,为了提高效率,我需要将两个sql查询组合成一个查询,只是不知道如何做。基本上,我需要查询我的供应商,然后针对每个供应商检查列表表是否有多条基于供应商id匹配的记录,如果有,则我需要返回供应商名称和id。以下是我的两个查询: 问题1: 问题2: 您已经在第二个查询中加入了供应商,因此您只需将供应商名称和id添加到您的SELECT and GROUP BY SELECT s.name, s.id FROM Supplier s SELECT l.

为了提高效率,我需要将两个sql查询组合成一个查询,只是不知道如何做。基本上,我需要查询我的供应商,然后针对每个供应商检查列表表是否有多条基于供应商id匹配的记录,如果有,则我需要返回供应商名称和id。以下是我的两个查询:

问题1:

问题2:


您已经在第二个查询中加入了供应商,因此您只需将供应商名称和id添加到您的SELECT and GROUP BY

SELECT          s.name, s.id 
FROM            Supplier s
SELECT      l.asin, 
            l.id, 
            COUNT(*) c
FROM        Listing l
LEFT JOIN   Product p
 ON         p.id = l.product_id
LEFT JOIN   Supplier s
 ON         p.supplier_id = s.id 
WHERE       (l.matchValidated IS NULL OR l.matchValidated = 0)
AND         s.id = SUPPLIER_ID_GOES_HERE
GROUP BY    l.asin HAVING c > 1);
SELECT      l.asin, 
            l.id,
            s.name AS supplier_name,
            s.id AS supplier_id, 
            COUNT(*) c
FROM        Listing l
LEFT JOIN   Product p
 ON         p.id = l.product_id
LEFT JOIN   Supplier s
 ON         p.supplier_id = s.id 
WHERE       (l.matchValidated IS NULL OR l.matchValidated = 0)
GROUP BY    l.asin, l.id, s.name, s.id 
HAVING      c > 1;