DB有幾張表,tblPizza,然後是它的澆頭,tblCheese,tblMeat和tblVeggie表。我想寫一個將使用VARCHAR參數的MySQL函數,在每個表中查找priceFactor,將它們加在一起並返回小數點。谷歌搜索和搜索後,我已經拼湊起來了。我在這裏或Google上找到的結果都沒有試圖做足夠接近我想做的事情來做出答案。MySQL函數從多個表中添加價格
DELIMITER $$
CREATE FUNCTION `dbname`.`calculatePrice` (cheese VARCHAR(50), meat VARCHAR(50), veg VARCHAR(50))
RETURNS DECIMAL
BEGIN
DECLARE price DECIMAL;
SET price = SUM(SELECT priceFactor AS cheesePrice UNION ALL SELECT priceFactor AS meatPrice FROM tblMeat WHERE meatName = meat UNION ALL SELECT priceFactor AS vegPrice FROM tblVeggie WHERE veggieName = veg) FROM tblCheese WHERE cheeseName = cheese);
RETURN price;
END
MySQL不喜歡SUM之後的SELECT,但我不知道如何得到我想要的而沒有子查詢。每個表格中都有重複的列名稱,表格之間沒有相關性來證明JOIN。
結果將被踢回到PHP,這將JSON一起jQuery。
謝謝! 99%的時間,我可以找到我需要在這裏^ _^
編輯注意到有可能一個(但只有一個)的參數可能爲空。用戶只需要選擇兩個披薩配料,但不能選擇任何比這更少的配料。
你試過選擇總和(priceFactor)呢? – Grzegorz