SQL语句白学了,还是不会(50分)

  • 主题发起人 主题发起人 烂泥
  • 开始时间 开始时间

烂泥

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个表
table1 字段如下:
num lb name .....
--------------------------------
0001 2 张三
0001 2 李四

table2 字段如下:
num dx cd .........
-------------------------------------
0001 5 10
0001 6 11
0001 7 13
0001 9 12


我希望得到如下的表:
num dx cd lb
-----------------------------------
0001 5 10 2
0001 6 11 2
0001 7 13 2
0001 9 12 2

注意我只希望table2的数据出现一次。
好象比较简单,可是我不会,。:-(
 
Tabl1与Table2用什么关联?
 
用Num啊!
 
全部的Num都一样,跟没有有何区别,说清楚一点吧
 
全部如下
table1 字段如下:
num lb name .....
--------------------------------
0001 2 张三
0001 2 李四
0002 3 张三
0003 10 xxx
0004 16 xxx
0004 16 xxx
.....


table2 字段如下:
num dx cd .........
-------------------------------------
0001 5 10
0001 6 11
0001 7 13
0001 9 12
0002 x x
0002 x x
0002 x x
0002 x x
...
如果table1的某一编号如果只有一个,没问题。
但是table1的某一编号的数据可能有两条。
如0001号记录table1,2的连接回得到8条记录
现在只想得到0001的4条记录,我没搞掂。

我的Oicq-3727718
 
数据库设计有问题
 
TO: Victortim
刚下线不久想起你的话,又爬上来 ,不就是取一个唯一的num 和lb 使的
a.num=b.num时自然连接唯一吗,
有一个很有效的办法,比较土,但管用,
我建一个交换的表(tablejh),只有num和lb字段,我用
先 insert into tablejh(num,lb) select distinct num,lb from table1)

再 select a.* ,b.lb from table1.a tablejh b
where a.num=b.num
就ok了。

各位大虾有何高见,再听。

<font color="#0000FF">谢谢 Victortim大虾在Oicq中的指导。</font>


 
如果num和lb一一对应。
select * from table2 inner join (select distinct num,lb from table1) t1 on table2.num=t2.num

我已经发第三遍了,是不是发到其他地方去了呢?
 
用Soul大虾的方法也可以搞定

SELECT * FROM table2 t2 INNER JOIN
(SELECT DISTINCT num, lb FROM table1) AS t1 ON t1.num = t2.num

SQl果然白学了
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
767
DelphiTeacher的专栏
D
D
回复
0
查看
809
DelphiTeacher的专栏
D
D
回复
0
查看
639
DelphiTeacher的专栏
D
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部