请教一个 sql 交叉查询的问题!

来源:百度知道 编辑:UC知道 时间:2024/06/08 17:49:36
表A 字段 x,y,z
表B 字段 m,n

如 表A
x y z
张三 1 7
李四 2 8
王五 1 9

表B
m n
1 已婚
2 未婚
7 南昌
8 杭州
9 南京

我现在需要的是交叉查询A B表 得到下面的效果,请大侠赐教
张三 已婚 南昌
李四 未婚 杭州
王五 已婚 南京
两个表没有其他字段了

正确答案:

select a.x as 姓名,b.n as 婚否,c.n as 籍贯
from 表A a
inner join 表B b on a.y=b.m
inner join 表B c on a.z=c.m

select x,K.n,J.n from A
left join
(select * from B where m in(select distinct y from A)) as K
on A.y=K.m
left join
(select * from B where m in(select distinct y from A)) as J
on A.z=J.n

select a.x,b.n,c.n
from 表A a,表B b,表B c
where a.y=b.m
and a.z=c.m;

---
以上,希望对你有所帮助。