我有一个需要查询两次,产生这种格式产生结果的单一MySQL表:结合2个SQL查询到1,从同一个表
+------------+----------+-------------------+
| Supplier | Requests | Requests_Approved |
+------------+----------+-------------------+
| Supplier 1 | 50 | 45 |
| Supplier 2 | 75 | 63 |
| Supplier 3 | 48 | 32 |
| Supplier 4 | 104 | 87 |
+------------+----------+-------------------+
到目前为止,我已经试过如下:
SELECT Supplier, COUNT(*) AS Requests, COUNT(*) AS Requests_Approved
FROM pricematch
WHERE Date_Received >= '2015-01-01'
AND Date_Received <= '2015-12-31'
AND PM_Level = 'Escalation'
GROUP BY Supplier
UNION
SELECT Supplier, COUNT(*) AS Requests, COUNT(*) AS Approved
FROM pricematch
WHERE Date_Time_Received >= '2015-01-01'
AND Date_Time_Received <= '2015-12-31'
AND PM_Level = 'Escalation'
AND Matched = 'Yes'
GROUP BY Supplier
ORDER BY Requests DESC
LIMIT 20
哪产生以下结果表,并在两者的列数相同的结果:
+------------+----------+-------------------+
| Supplier | Requests | Requests_Approved |
+------------+----------+-------------------+
| Supplier 1 | 50 | 50 |
| Supplier 2 | 75 | 75 |
| Supplier 3 | 48 | 48 |
| Supplier 4 | 104 | 104 |
+------------+----------+-------------------+
我在这里查看了很多类似的问题/答案,并尝试了使用LEFT JOIN和INNER JOIN的替代方法,但查询总是失败。
,什么是混乱呢?你正在使用'COUNT(*)'来计算两者,所以如果值不一样,我会非常惊讶。 –