gpt4 book ai didi

MySQL函数从多个表中添加价格

转载 作者:行者123 更新时间:2023-11-29 03:07:42 25 4
gpt4 key购买 nike

数据库有几个表,tblPizza,然后是它的配料表,tblCheese、tblMeat 和 tblVeggie。我想编写一个 MySQL 函数,它将采用 VARCHAR 参数,在每个表中查找 priceFactor,将它们相加,然后返回该小数。在谷歌搜索和搜索之后,我拼凑了这个。我在这里或在 Google 上找到的结果都没有尝试做足够接近我想做的事情来作为答案。

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,PHP 会将它与 jQuery 一起 JSON。

谢谢! 99% 的时候,我都能在这里找到我需要的东西^_^

编辑以注意其中一个(但只有一个)参数可能为空。用户只需要选择两种披萨配料,但不能选择少于两种。

最佳答案

试试这个,

SET price = 
(
SELECT SUM(x.Price)
FROM
(
SELECT priceFactor AS Price FROM tblCheese WHERE cheeseName = cheese
UNION ALL
SELECT priceFactor AS Price FROM tblMeat WHERE meatName = meat
UNION ALL
SELECT priceFactor AS Price FROM tblVeggie WHERE veggieName = veg
) x
);

关于MySQL函数从多个表中添加价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12945119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com