[英]Combining 2 Tables with the"Same" Primary Key in a function
我必须为我的数据库编写一个函数,以便从我的文章表中获取订单表中的价格。 我有 2 个物品表,1 个用于出租物品,1 个用于出售物品。 两个表都使用主键 ItemNo,Sales 从 ItemNo 1 开始,Rent 从 itemNo >=1000 开始。
我在下面为表格销售写了函数,它也可以工作。 我只是不确定现在如何组合这两个函数以从两个表中获取它。
我应该使用 if-case 并使用 if inItemNo>=1000 then 函数来编写 Rent 和 else Function Sales 函数还是应该使用 Join? 如果我应该使用连接,我不太确定如何正确使用它。 可能有人可以帮助我。
提前致谢
DELIMITER $$
create or replace function fn_PurchasingPrice(inItemNo int) returns int
begin
declare OutPurchasingPrice int;
set OutPurchasingPrice=(select ItemNo
from Sales
where ItemNo= inItemNo);
return ifnull(OutPurchasingPrice,-1);
END$$
DELIMITER ;
我认为我们有一个数据库设计问题。 以下是一些选项:
我的理解是,您需要一个简单地返回某物、租金或销售项目价格的函数。
这些项目在它们自己的表中存储了不同的项目编号 (PK)。 这意味着它们是不同的实体。 他们共享一个价格字段的事实并不意味着他们是相关的。 这意味着您可能想要:
fn_SalePurchasingPrice
和fn_RentPurchasingPrice
的价格。fnPurchasingPrice(6011, 3048)
它将使用联合返回两个值。 select price from table1 where table1_id = value1
union select price from table2 where table2_id = value2
每个表中的项目数可以超过 1000,因此一个表的 PK 从 1000 开始这一事实是没有用的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.