Mysql4.1开始支持SQL的子查询。这个技术可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的SQL操作,同时也可以避免事务或者表锁死,并且写起来也很容易。但是,有些情况下,子查询可以被更有效率的连接(JOIN)..替代。
Mysql中有左连接(left join)、右连接(right join)和内连接(inner join或者cross join),今天我用一个实例来说明各自的作用:
首先,建立两个实例数据库:
表join_a:
CREATE TABLE `join_a` (
`id` int(4) unsigned NOT NULL auto_increment,
`name` varchar(20) NOT NULL default '',
`password` varchar(20) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
表join_b:
CREATE TABLE `join_b` (
`id` int(4) unsigned NOT NULL auto_increment,
`name` varchar(20) NOT NULL default '',
`sex` tinyint(1) NOT NULL default '0',
`province&