跨表查询,表A中有3个字段都对应表B中同一个字段,请问怎么写SQL语句?谢谢
表Aidcontent1content2content310010020032003001002表Bc_idcontent001上海002北京003天津请问在A中根据id...
表A
id content1 content2 content3
1 001 002 003
2 003 001 002
表B
c_id content
001 上海
002 北京
003 天津
请问在A中根据id查询到某一行,再根据content1,content2,content3去查表B,返回3个城市名,怎么写SQL语句?谢谢! 展开
id content1 content2 content3
1 001 002 003
2 003 001 002
表B
c_id content
001 上海
002 北京
003 天津
请问在A中根据id查询到某一行,再根据content1,content2,content3去查表B,返回3个城市名,怎么写SQL语句?谢谢! 展开
3个回答
展开全部
select a.id,b1.content as name1,b2.content as name2,b3.content as name3 from
表A a left join
表B b1 on b1.c_id=a.content1 left join
表B b2 on b2.c_id=a.content2 left join
表B b3 on b3.c_id=a.content3 left join
表A a left join
表B b1 on b1.c_id=a.content1 left join
表B b2 on b2.c_id=a.content2 left join
表B b3 on b3.c_id=a.content3 left join
更多追问追答
追问
select a.id,(select content from 表B where c_id=a.content1) as content1,
(select content from 表B where c_id=a.content2) as content2,
,(select content from 表B where c_id=a.content3) as content3
from 表A
这样也能得出同样的结果,请问和你的答案有什么区别?是效率区别吗?非常谢谢啊!
追答
性能有差别,不过数据量不大也没关系
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select B.content from B where B.C_id in (select A.content1,A.content2,A.content3 from A
where A.id = "你输入的ID")
where A.id = "你输入的ID")
追问
我主要是查表A,表A中用20多个字段需要查询,其中三个是表B中的字段
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
做个转换函数就成,把字典做成函数,然后查表时转换就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询