求教SQL查询

kehuan 2003-11-06 04:09:48
两个表A,B
A(甲,乙)
B(丙, 丁)
用一条查询语句得到结果显示4列
甲,乙,丙, 丁

A
甲,乙
1 , 1
2 , 2
3 , 3
B
丙, 丁
a , a
b , b
c , c
得到查询结果:
甲,乙,丙, 丁
1 , 1 , a, a
2 , 2 , b, b
3 , 3 , c, c



...全文
47 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuiniu 2003-11-06
  • 打赏
  • 举报
回复
请问楼主
如果表b的记录是
这样
丙, 丁
c , c
b , b
a , a

你需要的得到查询结果是:
甲,乙,丙, 丁
1 , 1 , a, a
2 , 2 , b, b
3 , 3 , c, c

还是

甲,乙,丙, 丁
1 , 1 , c, c
2 , 2 , b, b
3 , 3 , a, a

njjianguogu 2003-11-06
  • 打赏
  • 举报
回复
結果:
1 1 a a
2 2 b b
3 3 c c
njjianguogu 2003-11-06
  • 打赏
  • 举报
回复
create table A (甲 int,乙 int)
insert A values(1,1)
insert A values(2,2)
insert A values(3,3)
create table B (丙 char,丁 char)
insert B values('a','a')
insert B values('b','b')
insert B values('c','c')

select *,identity(int,1,1) a into AA from A
select * ,identity(int,1,1) b into BB from B
select AA.甲 甲,AA.乙 乙,BB.丙 丙,BB. 丁 丁 from AA,BB where AA.a = BB.b
zjcxc 2003-11-06
  • 打赏
  • 举报
回复
--或者:
select * from a aa inner join b bb on (select sum(1) from A where 甲<=aa.甲)=(select sum(1) from B where 丙<=bb.丙)
zjcxc 2003-11-06
  • 打赏
  • 举报
回复
--生成数据测试表
select * into #tb1 from(
select 甲=1,乙=1
union all select 2,2
union all select 3,3
) a

select * into #tb2 from(
select 丙='a',丁='a'
union all select 'b','b'
union all select 'c','c'
) b


--得到处理结果
select 甲,乙,丙,丁 from(
select id=(select sum(1) from #tb1 where 甲<=a.甲),*
from #tb1 a
) a inner join (
select id=(select sum(1) from #tb2 where 丙<=a.丙),*
from #tb2 a
) b on a.id=b.id

--删除数据测试环境
drop table #tb1,#tb2


/*--测试结果:

甲 乙 丙 丁
----------- ----------- ---- ----
1 1 a a
2 2 b b
3 3 c c

(所影响的行数为 3 行)
--*/
zjcxc 2003-11-06
  • 打赏
  • 举报
回复
select 甲,乙,丙,丁 from(
select id=(select sum(1) from A where 甲<=aa.甲),*
from A aa
) a inner join (
select id=(select sum(1) from B where 丙<=aa.丙),*
from B aa
) b on a.id=b.id
samuelpan 2003-11-06
  • 打赏
  • 举报
回复
两个表的,一个sql语句,难!

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧