两张表,article 的uid 对应 user 表的 uid
create table article( id int unsigned not null auto_increment primary key, title char(200), content text, uid int )engine=MyISAM default charset=utf8; create table user( uid int unsigned not null auto_increment primary key, name varchar(200), email varchar(200) )engine=MyISAM default charset=utf8;
left join
首先看这条语句
SELECT article.id, article.title, user.name, user.email from article LEFT JOIN `user` ON article.uid = `user`.uid where article.id < 3;
这句sql的意思是查询出 article 表的id,title字段和user表的name,email字段,将user表的数据列在article表查出的字段中。
也就是说,以article表中的数据为基准来列出user表,不管user表中是否有对应数据。
right join
以右边的表为基准
inner join
取出两表的交集同 cross join