2015-11-16 3 views
0

У меня есть два sql-запроса, которые мне нужно объединить в один запрос для повышения эффективности, просто не уверен, как это сделать. В основном мне нужно запросить у моего Поставщика, затем для каждого поставщика проверить, имеет ли таблица листинга более одной записи, которая соответствует основанию «идентификатор поставщика», если это произойдет, мне нужно вернуть имя и идентификатор поставщика. Вот мои два запроса:Объедините два MySql в один запрос

Запрос 1:

SELECT   s.name, s.id 
FROM   Supplier s 

Запрос 2:

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); 

ответ

0

У вас уже есть поставщик присоединился второй запрос, так что вы просто нужно добавить имя поставщика и идентификатор вашего SELECT и GROUP BY.

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; 
Смежные вопросы