怎樣查找這樣的記錄,table1里的id1 和id2的組合在table2里

cainiaobus 2002-08-02 03:51:26
怎樣查找這樣的記錄,table1里的id1 和id2的組合在table2里
有兩個數據表table1,table2
table1:
id1 id2 name
1/1/aa
1/2/bb
1/3/cc
2/1/dd
2/2/ee
2/3/ff

table2:
id1 id2
1/1
1/2
2/2

要求用一條語句實現這樣一個功能:
從table1里找出所有id1和id2的組合在table2里的
在這里的結果應該是:
1/1/aa
1/2/bb
2/2/ee

...全文
31 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
OpenVMS 2002-08-02
  • 打赏
  • 举报
回复
多表操作用连接或者EXISTS速度不会慢
OpenVMS 2002-08-02
  • 打赏
  • 举报
回复
1 TABLE1和2内连接,条件为TABLE1 的ID1+ID2的前部分要求在和TABLE2的ID1匹配.

2 TABLE1 的ID1+ID2的前部分要求在和TABLE2的ID1匹配.
cainiaobus 2002-08-02
  • 打赏
  • 举报
回复
哦,對不起,是我想暈頭了
這不是我要問的問題
我在寫一個涉及好多個表的語句,而且有的表要用到3,4次,
關聯來關聯去就擔心速度會慢,
那問題我還得再想一下怎麼問
謝謝各位大蝦
supsuccess 2002-08-02
  • 打赏
  • 举报
回复
select table1.*
from table1,table2
where table1.id1=table2.id1 and table1.id2=table2.id2
cainiaobus 2002-08-02
  • 打赏
  • 举报
回复
TO:OpenVMS(半知半解)
"select a.id1+a.id2
from table1 a inner join table2 b on left(a.id1+1.id2,len(b.id1))=b.id1"

能解釋一下嗎?
Yang_ 2002-08-02
  • 打赏
  • 举报
回复
例子是不是写错了?

select * from table1
where exists (
select * from table2
where table2.id1=table1.id1
and table2.id2=table1.id2
)

OpenVMS 2002-08-02
  • 打赏
  • 举报
回复
或者
select a.id1+a.id2
from table1 a
where exists (select id1 from table2 where a.id1+a.id2 like id1+'%')
cainiaobus 2002-08-02
  • 打赏
  • 举报
回复
TO:OpenVMS(半知半解)
怎麼你把我的table2都丟掉了
OpenVMS 2002-08-02
  • 打赏
  • 举报
回复
看错了

select a.id1+a.id2
from table1 a inner join table2 b on left(a.id1+1.id2,len(b.id1))=b.id1

OpenVMS 2002-08-02
  • 打赏
  • 举报
回复
declare @id varchar(10)
set @id=''
select @id=@id+id1+id2 from table1
select @id

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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