有3张表: TableA(id,name) --记录地名 代码,名称。
如(01,北京);(02,上海);(03,广州);(04,沈阳)
TableB(id,name) --记录国家代码,名称。
如(01,中国);(02,美国);(03,日本);(04,英国)
TableC(id,type) --记录中间数据(代码,类型)
如(01,a);(02,a) ; (03,b) 其中a代表地区,b代表国家
现在想 TableC 让实现如下效果:
01 , a , 北京
02 , a , 上海
03 , b , 日本
不知相关的sql语句怎么写,请各位大大不吝指教啊。。。 不知道我有没有描述清楚。
select c.*,d.name
from tableC c
inner join
(
select code,name,'a' type
from tableA
union all
select code,name,'b' type
from tableB
) d
on c.code=d.code and c.type=d.type
其中 code:代码,name:名称,type:类型
没有描述清楚.
是关联查询三张表吗?
提问不清,TableC的01,02,03代码跟其他表有什么关联没?最好说清楚场景会更清楚点.
说的不清楚啊
楼上的太复杂,一个简单的and连接就可以搞定:
select distinct tableC.id,tableC.type,tableA.name from tableA,tableB,tableC where tableC.id=tableB.id and tableC.id=tableA.id