我有两个单独的查询:Employee和Manager,它们工作得很好并且符合我的要求,但我希望合并所有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 应该可以通过一些调整来使用。
- 每个查询必须返回相同数量/类型的列,因此请使用
NULL AS "Shop Name:"
等填写 Manager 查询以查找缺失的列。 - 合并查询只允许使用一个 ORDER BY,因此请确保它出现在最后,并通过其别名来引用排序列
“Total Sales:”
关于mysql - 在 MySQL 中将两个查询连接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53565696/