mysql - 在 MySQL 中将两个查询连接在一起

标签 mysql sql

我有两个单独的查询:EmployeeManager,它们工作得很好并且符合我的要求,但我希望合并所有COLUMNS来自两个查询。这可能吗?我显然不期望得到完整的答案,但希望对实现这一目标的可能方法有一些见解。

员工查询:

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 和嵌套查询,但似乎都不起作用。

最佳答案

UNION 或 UNION ALL 应该可以通过一些调整来使用。

  1. 每个查询必须返回相同数量/类型的列,因此请使用 NULL AS "Shop Name:" 等填写 Manager 查询以查找缺失的列。
  2. 合并查询只允许使用一个 ORDER BY,因此请确保它出现在最后,并通过其别名来引用排序列“Total Sales:”

关于mysql - 在 MySQL 中将两个查询连接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53565696/

相关文章:

php - 如何将id保存在数据库中,但在页面上显示用户名

php - mysql查询选择取决于2个表

php - 使用 Mysql 和 PHP 构建动态网站

php - 在 PHP 中进行 24 个数据库查询或 1 个数据库查询和排序是否更快?

sql - 如何在 Oracle 触发器主体中使用带引号的 “referencing” 标识符

SQL 语句将其转换为 1 为 Jan、2 为 Feb 等

php - 数据库中的信息未更新

mysql - 填充多行以查看列是否已填充?

java - INSERT 语句的未知 SQL 问题

sql - 将 SQL Server 数据库迁移到 SQL Compact 数据库