我有一个名为“xml_links”的视图,其格式如下
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
感谢您的帮助
答案 0 :(得分:1)
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'这样的值不仅仅在一个表中重复(这在两个表中很糟糕)。
其次,您将值存储在列中而不是行中。只要你只有两家供应商,我给你的解决方案就会很好,但是当你添加第三家供应商时会发生什么?你需要在两个表中添加第三列。如果你有数百万条记录,这可能需要几个小时,在此期间网站将没有响应。
答案 1 :(得分:0)