2014-11-02 101 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`)