Объединение двух запросов вместе в MySQL - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть два отдельных запроса: Сотрудник и Менеджер , которые прекрасно работают и, как я хочу, но я хочу объединить все КОЛОННЫ из обоих запросов,Это возможно?Я, очевидно, не ожидаю полного ответа, но был бы признателен за понимание возможных методов для достижения этой цели.

Запрос сотрудника:

SELECT
  shopTableRef.shopname AS "Shop Name:",
  perTableRef.personname AS "Employee Name:",
  COUNT(inStoreTableRef.payid) AS "Total Sales:",
  SUM(payTableRef.amount) AS "Sales Value (£):"
FROM
  fss_Person perTableRef
JOIN
  fss_Employee empTableRef ON perTableRef.personid = empTableRef.empid
JOIN
  fss_InstorePayment inStoreTableRef ON empTableRef.empid = inStoreTableRef.empid
JOIN
  fss_Payment payTableRef ON payTableRef.payid = inStoreTableRef.payid
JOIN
  fss_Shop shopTableRef ON payTableRef.shopid = shopTableRef.shopid
WHERE
  empTableRef.roleid = 2
GROUP BY
  perTableRef.personname
ORDER BY
  COUNT(inStoreTableRef.payid) DESC

Запрос менеджера:

SELECT
  perTableRef.personname AS "Manager's Name:"
FROM
  fss_Person perTableRef
JOIN
  fss_Employee empTableRef ON perTableRef.personid = empTableRef.empid
JOIN
  fss_Manager manTableRef ON empTableRef.empid = manTableRef.empid
WHERE
  empTableRef.roleid = 1
GROUP BY
  perTableRef.personname

Я пробовал следующее: UNION, UNION ALL, INNER JOIN, JOIN и вложенные запросы, но ни одногопохоже на работу.

1 Ответ

0 голосов
/ 01 декабря 2018

UNION или UNION ALL должны работать с парой корректировок.

  1. Каждый запрос должен возвращать одинаковое число / тип столбцов, поэтому заполните запрос Manager с помощью NULL AS "Shop Name:" и т. Д. Дляпропущенные столбцы.
  2. Для комбинированных запросов разрешен только один ORDER BY, поэтому убедитесь, что он идет в самом конце, и обратитесь к столбцу заказа по псевдониму "Total Sales:"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...