2013-12-09 95 views
0

所以現在我有3個疑問:如何從多個查詢中進行乘法和除法?

讓我們把這個查詢x

SELECT count(*) as totalDrink from 
Drink D join History H where H.drinkName = D.name AND type = 'vodka' and userID = 'sai' 

查詢Ÿ

SELECT count(*) as totalDrink from 
Drink D join Favorite F where F.drinkName = D.name AND type = 'vodka' and userID = 'sai' 

查詢ž

SELECT SUM(totalDrinks) as total FROM (
SELECT COUNT(*) totalDrinks FROM History 
WHERE userID = 'sai' 
UNION ALL 
SELECT COUNT(*) FROM Favorite 
WHERE userID = 'sai' 
) as totalDrink 

基本上我想要做的mySQL和輸出:

(X + Y(0.666))/ Z

+0

只是要注意: Querys X,Y和Z將每個輸出端只需1元組,所以我覺得應該有一種標量乘法的方法? – user2981811

回答

0

大多數直接:

SELECT (
    (
    SELECT COUNT(*) 
    FROM Drink D JOIN History H ON H.drinkName = D.name 
    WHERE type = 'vodka' AND userID = 'sai' 
) + (
    SELECT COUNT(*) 
    FROM Drink D JOIN Favorite F ON F.drinkName = D.name 
    WHERE type = 'vodka' AND userID = 'sai' 
) 
)/(
    (
    SELECT COUNT(*) FROM History WHERE userID = 'sai' 
) + (
    SELECT COUNT(*) FROM Favorite WHERE userID = 'sai' 
) 
) 
+0

是的,我想說的是有一個更加優雅的解決方案,其中包含準備好的語句或連接,但OP的問題措辭很簡單,沒有示例,很難找到避免使用子查詢的方法。 – cerd