2014-11-02 75 views
0

我不明白为什么我的查询MySQL的 - 从两个表中选择两个值

SELECT SUM(DATE(date) = '2014-11-2') AS `rate` FROM `ratings` UNION SELECT COUNT(*) AS `users` FROM `user` 

不会创建两个值 - 速度,用户在查询,但只有一个 - 房价 - 有两个值。

结果:

rate 
6 
10 

预期结果:

rate users 
6 10 

你知道吗,这有什么错我的查询?

回答

1

你应该做一个JOIN代替UNION

根据您提供的信息和你想达到的结果,你的查询可以是这个样子:

SELECT SUM(DATE(date) = '2014-11-2') AS `rate`, (
    SELECT COUNT(*) FROM `user` 
) AS `users` 
FROM `ratings` 

...但是这缺少一些关系/太表之间的条件

+0

这一个作品,thx – SilentCry 2014-11-02 11:36:50

1

因为工会是用来“收集”几行从不同的查询到1分的结果集:

像这样的事情可能做的伎俩:

SELECT (SUM(DATE(date) = '2014-11-2') AS `rate` FROM `ratings`) 
, (COUNT(*) AS `users` FROM `user`) 

运作的?

0
SELECT (COUNT(DATE(date) = '2014-11-2') AS `rate` 
FROM `ratings`), (COUNT(*) AS `users` FROM `user`)