我有三张桌子: 表a
UID
SellID
BuyID
SAMonth
表B
ID
ZipCode
表C
Zip Code
Latitude
Longitude
现在我必须找到两个ID之间的距离
首先我有UID并且基于该UID我试图获得两个邮政编码对应每个ID使用以下代码。
Select t1.UID,t1.SellID,z1.ZipCode, t1.BuyID, z2.ZipCode , SAMonth
from tableA t1
inner join tableB z1 on t1.SellID Like z1.ID
inner join tableB z2 on t1.BuyID Like z2.ID
where Criteria
这段代码出了什么问题,我在添加第二个内连接时遇到了语法错误。此外,如何使用此Zip获取ID&#39>的经度和纬度
由于Format的不同,它正在使用Like Keyword。添加括号后其工作。如何扩展到第3个表
答案 0 :(得分:1)
你需要将其中一个连接放入parens中,例如
Select t1.UID,t1.SellID,z1.ZipCode, t1.BuyID, z2.ZipCode , SAMonth
from ( tableA t1
inner join tableB z1 on t1.SellID Like z1.ID )
inner join tableB z2 on t1.BuyID Like z2.ID
where Criteria
这迫使您编写的顺序仅用于解析目的,优化程序将使用它确定为最佳的顺序。
正如其他人所指出的那样,您的数据元素名称(ID
)建议您将like
替换为=
(等于)。
添加第三个表涉及添加更多级别的parens嵌套,例如
from ( ( tableA t1
inner join tableB z1 on t1.SellID Like z1.ID )
inner join tableB z2 on t1.BuyID Like z2.ID )
inner join tableC z3 on z1.ZipCode = z3.ZipCode
答案 1 :(得分:0)
将like
替换为=
相等比较
inner join tableB z1 on t1.SellID = z1.ID
inner join tableB z2 on t1.BuyID = z2.ID
答案 2 :(得分:0)
Select t1.UID,t1.SellID,z1.ZipCode, t1.BuyID, z2.ZipCode , t1.SAMonth
from tableA t1
inner join tableB z1 on t1.SellID = z1.ID
inner join tableB z2 on t1.BuyID = z2.ID