【发布时间】:2013-01-26 18:15:06
【问题描述】:
大家好,我非常接近能够表示我希望显示的数据
有问题的列是a.state_Id。
我从我所做的研究中了解到a.State_Id 超出了范围。我的 sql 语句缺少什么?
如果我取出 a.State_ID = c.State_Id 只留下 b.Product_Id = c.Product_Id 则显示数据,但我需要匹配状态和产品。
我知道我需要在某处添加另一个join,但我不确定如何。如果有人可以帮助我,那就太棒了!
SELECT a.state_id,
a.state_name,
a.state_abbreviatedname,
b.product_id,
b.product_name,
c.stateproduct_price
FROM states a,
products b
LEFT OUTER JOIN stateproducts c
ON a.state_id = c.state_id AND b.product_id = c.product_id
更新 1
states 表已被填充并包含以下字段:
State_Id
State_Name
State_AbbreviatedName
已填充以包含基本产品的 Products 表。该表有以下字段:
Product_Id
Product_Name
每个州都有相同的产品,但是每种产品的价格会随着每个州的变化而变化。这就是为什么我有 StateProducts 表的原因。这个表是空的,会被我创建的一个界面一一填充。 statesproducts 表将包含以下字段
State_Id //reference/relational field to be user for comparison
Product_Id //reference/relational field to be user for comparison
StateProduct_Price //new field
所以我知道我将在价格列中收到 NULL 值。
我已经能够返回 States 和 products 表的一种 cartesion 产品。但是,我现在需要在此 cartesion 表的右侧附加每个组合的价格。 记住 stateproducts 表是空的,我将如何做到这一点?
【问题讨论】:
-
请停止混淆显式和隐式
JOINs。 -
njk,我是一个 ios 程序员,而不是真正的数据库设计师。我目前正试图了解这一切。如果您可以通过不混合显式和隐式连接来解释您的意思,并向我们展示它们是如何编写的,这对我来说是有教育意义的。谢谢
-
@Pavan:请参阅 en.wikipedia.org/wiki/Join_%28SQL%29#Inner_join 或 stackoverflow.com/questions/44917/…,了解隐式连接和显式连接之间的区别。
-
谢谢我会读到这个。欣赏参考指南。
标签: mysql sql join left-join cross-join