我必须组合这些多个 UNION 查询...
SELECT 'Mercedes' AS marke, COUNT(autos.id) FROM autos WHERE a1=1
UNION
SELECT 'BMW' AS marke, COUNT(autos.id) FROM autos WHERE a2=1
UNION
SELECT 'Ford' AS marke, COUNT(autos.id) FROM autos WHERE a3=1
我怎样才能只用一个查询来做到这一点?
最佳答案
如果您希望摆脱 UNION
,您可以使用带有 CASE
表达式的聚合查询来解码 marke
。
SELECT
CASE
WHEN a1 = 1 THEN 'Mercedes'
WHEN a2 = 1 THEN 'BMW'
WHEN a3 = 1 THEN 'Ford'
END AS marke,
COUNT(autos.id)
FROM autos
WHERE a1 = 1 OR a2 = 1 OR a3 = 1
GROUP BY a1, a2, a3
关于mysql - 结合多个 MySQL UNION 查询进行优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54205456/