2013-03-06 09:28:50.0|分类: mysql|浏览量: 1648
测试表用户表user:
测试表密码表pwd:
1、创建user表: CREATE TABLE `user` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) default NULL, `password` varchar(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;2、创建pwd表: CREATE TABLE `pwd` ( `id` int(11) NOT NULL auto_increment, `userid` int(11) default NULL, `passwd` varchar(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 3、使用inner join 将pwd表中的passwd填入到user表中的password列(根据userid),SQL语句:
UPDATE `user` U INNER JOIN `pwd` P ON P.userid=U.id SET U.password = P.passwd;4、 left join(左联接) 查询user中的信息
SELECT us.*,pw.* FROM `user` us LEFT JOIN pwd pw ON pw.userid=us.id;结果: 说明: 5、left join(左联接) 查询pwd中的信息
SELECT us.*,pw.* FROM `user` us RIGHT JOIN pwd pw ON pw.userid=us.id;结果: 说明: 和left join的结果刚好相反,这次是以右表(pwd)为基础的,user表不足的地方用NULL填充. 6、inner join(相等联接或内联接)
SELECT us.*,pw.* FROM `user` us inner JOIN pwd pw ON pw.userid=us.id;结果: 说明: 很明显,这里只显示出了 pw.userid=us.id的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录. |