因此,我有两个表A和B,两个表都有一个列地址。表A有id1列,表B有id2列。如果id1和id2列中的值相同,我想获取地址列(它可以是表B)。我怎么能在SQL命令中做到这一点?值得一提的是,如果这些列是相同的,地址也会相同或相似,所以地址可以来自任一表。我很新的SQL,你的帮助将非常感激。在此先感谢如果表A的列A等于表B的列B,则从两个表(表A和表B)获得输出
回答
你应该试试这个:
Select address
from tablea as a, table b as b
where b.id =a.id
请停止在where子句中使用古老的,过时的和脆弱的隐式连接,并开始使用明确的'JOIN'运算符。 –
我假设有一个机会,在表1中的地址丢失,否则它会只是选择该领域的问题。我加了一个case语句来处理,以防万一(港灯),但如果没有你可以只更换a.address是整个位
Select a.id1,
case when a.address is not null
then a.address
else b.address end as new_address.
from Table1 A, Table2 B
where a.id1 = b.id2
此外,如果你已经有了一个内部组合与外部连接发生(或只是很多连接),那么你会想添加更多的显式连接标准。
请停止在where子句中使用古老的,过时的和脆弱的隐式连接,并开始使用显式的'JOIN'运算符。 –
如果在正确的地方使用隐式连接,则没有什么脆弱的。加入运算符只有在进行外连接时才需要。 –
隐式连接**是脆弱的,因为它很容易结束交叉连接,因为缺少连接条件不会导致错误消息。用不明确的JOIN操作符写一个交叉连接是不可能的。看看这个:http://hastebin.com/tayimobapo.sql,告诉我你需要多久才能知道是否缺少连接条件。 –
- 1. 表A的列a到表B的列b的SQL拷贝值
- 2. 给定一个(A * B)列表,返回(A * B列表)名单
- 3. 有2个表格,A(列a)和B(列b)。我想查找表A列a列中每个值的出现次数b列表b
- 4. 从表A到表B加入两列
- 5. 输入(a + b)** 2,输出a * a + a * b + b * a + b * b
- 6. 列表[[ 'A'],[ 'B']转化为[ '一个', 'B']
- 7. 从列表中检索列表B A
- 8. clojure中的a..b列表
- 9. 从表B中插入到表A中,如果表B的列数等于tabl A?
- 10. 混合两个矢量:[a a]和[b b] to [a b a b]
- 11. 我想从['a','b','c']将python列表变成['a','a','b',b','c','c']
- 12. 更新表a和表b
- 13. SQL:添加从B表列表A
- 14. Mysql插入记录从表A到表B.如果表B.列少于
- 15. 什么是A&B代表.Aggregate((a,b)=>声明w/a&b)
- 16. 按列表A排序列表B?
- 17. 简化布尔表达式(a *'b *'c)+('a *'b * c)+('a * b *'c)+(a *'b * c)
- 18. 加入表A,表B和表C,以获得从表A和表C
- 19. 功能型的( 'A - >' B)列表 - > 'A - >' b在OCaml的列表
- 20. 转换一个ValidationNel [A,列表[B]]到ValidationNel [A,NonEmptyList [B]]
- 21. SqlAlchemy如何查询列A == a和B == b和A == b和B == a
- 22. 对于非零'b',表达式“(a/b)* b + a%b - a”的表达式总是为零吗?
- 23. 正则表达式来解析[A] [B]到A和B
- 24. 正则表达式(A或A或A和B),(A但不是B)
- 25. 外键表A或B表
- 26. a + b如何不等于b + a?
- 27. SQL查询:获取表A中列A =表B中列A的行
- 28. 正则表达式!(A | B)例如不是(a或b)
- 29. 列A和列B等于表2中列C的新值
- 30. 将列表[Tuple2 [A,B]]转换为Tuple2 [Seq [A],Seq [B]]
更新您的问题显示表的模式,一个适当的数据样本和预期的结果... – scaisEdge