left join... on...
2011年08月01日
select * from A left join B on A.aid = B.bid ; 这里哪个是左哪个是右, 不过一般的写法都要对应的,即from A left join B 。这里是把所有的A的内容全部查出来,而与B里面对应的没有的A记录的则按照NULL的来算。
(1)select distinct s.* from scene s left join scene_video sv on sv.scene_id=s.id left表示把左边部分全查出来,right把右边部分全查出来。 这里是把所有的scene全查出来,总共66条记录。 (2)select distinct sv.* from scene s right join scene_video sv on sv.scene_id=s.id 这里是把所有的scene_video全查出来,总共267条记录。 (3)select distinct s.* from scene s right join scene_video sv on sv.scene_id=s.id left表示把左边部分全查出来,right把右边部分全查出来。 想把scene_video全查出来,结果写成了s.*,是查scene记录的。从scene里面记录找scene_video记录里面对应的,结果也是66条记录。
2011年08月01日
select * from A left join B on A.aid = B.bid ; 这里哪个是左哪个是右, 不过一般的写法都要对应的,即from A left join B 。这里是把所有的A的内容全部查出来,而与B里面对应的没有的A记录的则按照NULL的来算。
(1)select distinct s.* from scene s left join scene_video sv on sv.scene_id=s.id left表示把左边部分全查出来,right把右边部分全查出来。 这里是把所有的scene全查出来,总共66条记录。 (2)select distinct sv.* from scene s right join scene_video sv on sv.scene_id=s.id 这里是把所有的scene_video全查出来,总共267条记录。 (3)select distinct s.* from scene s right join scene_video sv on sv.scene_id=s.id left表示把左边部分全查出来,right把右边部分全查出来。 想把scene_video全查出来,结果写成了s.*,是查scene记录的。从scene里面记录找scene_video记录里面对应的,结果也是66条记录。