[英]With MySQL, how can I calculate a view field basing on a semi-related record?
[英]How do I show all records from one table for each semi-related record in another?
这个问题很难解释,我甚至不知道如何正确地标题,所以我事先对此道歉。
我对产品的看法如下:
产品
产品编号
产品名称
在我的数据库中,我有一个价目表和一个价目表产品表。 价目表可以标题为“第1层客户”,相应的RatecardProduct记录可以是该特定价目表的产品价格。 它可能只包含少数产品的价格,而不是所有产品的价格。
Ratecard
RatecardId
RatecardName
RatecardProduct
RatecardProductId
RatecardId
ProductId UnitPrice
问题是我需要创建一个显示所有价目表的所有产品的视图。 如果价目表/产品组合在我的ratecardproduct表中没有相应的单价,则应显示NULL或0。
想象一下,我有10个产品和4个价目表; 即使RatecardProduct表完全为空,视图也将包含40条记录
我需要这样做的原因是因为我在查看价目表时填写了gridview,我不想为每一行进行往返以确定是否有相应的价格。
非常感谢你提前。
生成所有行。 然后使用left join
引入数据:
select p.*, r.*, coalesce(rp.unitprice, 0) as unitprice
from products p cross join
ratecards r left join
ratecardproduct rp
on rp.productid = p.productid and rp.ratecardid = r.ratecardid;
或者,如果您想要NULL
请不要使用coalesce()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.