cross join:是笛卡儿乘积,在没有任何条件约束下就是一张表的行数乘以别一张表的行数。 left join:返回“表名1”的全部行,对于“表名2”中,不满足on条件的记录用空值替换。 rigth join:返回“表名2”的全部行,对于“表名1”中,不满足on条件的记录用空值替换。 full join:返回两张表中的所有记录,对于不满足on条件一端的记录用空值替换。 inner jon:只返回两张表中都满足on条件的记录
select a.fid,t.fname,a.fname,a.fdate,a.foldid from a, (select b.* from b,(select foldid,min(fdate) fdate from b group by foldid)c where b.foldid=b.foldid and b.fdate=c.fdate)t where a.fid=t.foldid
from a
left join b on a.fbid=b.fid
表B: 1 B1 09-01-02 0
2 BB1 09-03-04 1
3 BB2 09-09-01 1
表A:
1 1 A 09-03-05 0
2楼可能看明白意思吧,挺麻烦的
left join:返回“表名1”的全部行,对于“表名2”中,不满足on条件的记录用空值替换。
rigth join:返回“表名2”的全部行,对于“表名1”中,不满足on条件的记录用空值替换。
full join:返回两张表中的所有记录,对于不满足on条件一端的记录用空值替换。
inner jon:只返回两张表中都满足on条件的记录
select a.fid,t.fname,a.fname,a.fdate,a.foldid
from a,
(select b.*
from b,(select foldid,min(fdate) fdate from b group by foldid)c
where b.foldid=b.foldid and b.fdate=c.fdate)t
where a.fid=t.foldid