MySQL联合返回时使用不同的列

时间:2016-11-30 00:14:04

标签: mysql

让我们看看我的问题:

SELECT count(*) as 'b13' 
FROM `betmatches` 
WHERE `user`='1' AND `mId`='2326' and `odd`='odd2' 
union all 
SELECT count(*) as 'b14' 
FROM `betmatches` 
WHERE `user`='1' AND `mId`='2328' and `odd`='odd2'

这是查询运行时的结果 array(size = 2)

  0 => 
    array (size=1)
      'b13' => string '2' (length=1)
  1 => 
    array (size=1)
      'b13' => string '1' (length=1)

有2个b13,但我希望有一个b13和一个b14来计算每个选择的数量。有什么解决方案吗?

2 个答案:

答案 0 :(得分:0)

这样做:

SELECT (SELECT count(*) 
FROM `betmatches` 
WHERE `user`='1' AND `mId`='2326' and `odd`='odd2' 
) as 'b13' ,
(SELECT count(*) 
FROM `betmatches` 
WHERE `user`='1' AND `mId`='2328' and `odd`='odd2'
) as 'b14' 

答案 1 :(得分:0)

使用额外的列:

SELECT COUNT(*), label as 'b13' 
FROM betmatches 
WHERE user='1' AND mId='2326' and odd='odd2' 
UNION ALL
SELECT COUNT(*), label as 'b14' 
FROM betmatches
WHERE user='1' AND mId='2328' and odd='odd2'

MySQL结果集中的列只有一个别名,因此您当前的方法将无效。