Chinaunix

标题: [SQL语句请教]高手请进 [打印本页]

作者: okchina    时间: 2006-07-27 11:08
标题: [SQL语句请教]高手请进
有2个表:
表1:

sn      field a
111    a1
111    a2
111    a3
111    a4
表2:

sn    field b

111   bbb
111   ccc


我想查出的结果是:


111     a1         bbb
111     a2         ccc
111     a3         NULL
111    a4         NULL


说明:表1中有4个111记录,表2中只有2个111的记录,
我用连接就有4*2=8 个,
可以我只想要表1中的4个记录,然后按需分配.
(可以子查询)
谢谢...
作者: okchina    时间: 2006-07-27 11:12
给出我的错误sql:

select * from
(select * from tableA left join tableB on using (sn)
where sn = '111' )
as ttt
作者: jingzhi    时间: 2006-07-27 11:14
不用,mysql4.1.0 
select tb1.sn , tb1.fielda ,tb2.fieldb
from table1 as tb1
left join table2 as tb2 on tb1.sn = tb2.sn
[where ....]
作者: okchina    时间: 2006-07-27 13:42
原帖由 jingzhi 于 2006-7-27 11:14 发表
不用,mysql4.1.0 
select tb1.sn , tb1.fielda ,tb2.fieldb
from table1 as tb1
left join table2 as tb2 on tb1.sn = tb2.sn
[where ....]



这没有达到我的目的,
表1中如果有5条记录.
表2中如果有1条记录,
得出的是,总共有5条记录,但是5条记录都有表2中的field2地段,而且都是一样的,


如果
表1中如果有5条记录.
表2中如果有2条记录,
得出的是,总共有5条记录,但是10条记录都有表2中的field2地段,而且没5个都是一样的,

其实这样的结果是5*2

我要得是:

结果是以表1的记录为准,然后表2中记录的,在后面追加,有一个,显示一个,有2个显示2个.
作者: okchina    时间: 2006-07-28 11:03
看样子还在没有人能搞出来
作者: okchina    时间: 2006-07-30 12:27
高手请出现...




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2