mysql 3.22以下版本不支持子查询, 但所有的子查询都可以使用LEFT JOIN 或 and语句替代. 据说MYSQL的扩展版本MaxSQL支持子查询,也支持事务
SELECT * FROM table1 WHERE id IN (SELECT id FROM table2);SELECT table1.* FROM table1 inner join table2 on table1.id =table2. id;SELECT * FROM table1 WHERE id NOT IN (SELECT id FROM table2);select table1.* from table1 inner join table2 on table1.id <> table2.id group by table1.id having count(*) > 2;
但所有的子查询都可以使用LEFT JOIN 或 and语句替代.
据说MYSQL的扩展版本MaxSQL支持子查询,也支持事务
你可以采用:
1 多项查询(即将语句分成多个简单的查语句);
2 关联查询(即表与表之间的关联查询);
当然,第一中办法就不说了,采用第二中表关联查询:
ex: 表1.字段 条件 表2.字段 条件 表3.字段 ...
这种情况下,最大的好处是方便了编写者,在表内容不多的情况下很有用,因为MySql会自动的根据其条件生成暂存表,其结果都在暂存表中查询得到,但如果一旦表内容很冗大,表关联很多的时候,而又要讲究速度时,使用这种办法时最好考虑下;