gpt4 book ai didi

MySQL - 连接 View 和表

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

我有一个名为“xml_links”的 View ,其格式如下

model_number  fk_link            sd_link
10R46 www.fk.com/10R46 www.sd.com/10R46
10R47 www.fk.com/10R47 www.sd.com/10R47

还有一个名为“prohub”的表

page_url            fk_price      sd_price
www.fk.com/10R46 $155
www.sd.com/10R46 $161
www.fk.com/10R47 $117
www.sd.com/10R47 $146

我尝试使用以下查询加入它们,但得到的只是一个空白表。

select 
xml_links.model_number,
prohub.fk_price,
prohub.sd_price
from
xml_links, prohub

where
xml_links.fk_link=prohub.page_url
and
xml_links.sd_link=prohub.page_url

我正在寻找以下结果:

model_number   fk_price   sd_price
10R46 $155 $161
10R47 $117 $146

感谢您的帮助

最佳答案

他们询问您正在寻找

SELECT model_number, 
(SELECT flipkart_price FROM pro_hub WHERE page_url=flipkart_link and flipkart_price is not null),
(SELECT snapdeal_price FROM pro_hub WHERE page_url=snapdeal_link and snapdeal_price is not null)

FROM xml_links

但这实际上是一个需要规范化的数据库的拼凑解决方案

您真正寻找的解决方案

是对表格的重新设计。

在正确的 RDBMS 中,没有重复的数据。在您的数据库中,像“www.fk.com/10R46”这样的值不仅在一个表中重复(这已经够糟糕了,但在两个表中)。

其次,您将值存储在列中而不是行中。只要您只有两个供应商,我给您的解决方案就可以很好地工作,但是当您添加第三个供应商时会发生什么?您需要向两个表添加第三列。如果您有数百万条记录,这可能需要几个小时,并且在此期间网站将没有响应。

关于MySQL - 连接 View 和表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41232216/

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