Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1613100
  • 博文数量: 585
  • 博客积分: 14610
  • 博客等级: 上将
  • 技术积分: 7402
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-15 10:52
文章存档

2013年(5)

2012年(214)

2011年(56)

2010年(66)

2009年(44)

2008年(200)

分类:

2008-05-15 20:49:24




1.连接法
FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field2
 
2.子查询法
 sqlstatement: SELECT语句,即一个子查询就是一个select语句。
(1)comparison [ANY | ALL | SOME] (sqlstatement)
   ANY与SOME同义,检索主查询中的记录,这些记录要至少满足在子查询中检索的记录的比较条件;
   ALL检索主查询中的记录,它们满足在子查询中检索的所有记录的比较条件。
   comparison: 一个表达式及一个比较运算符,将表达式与子查询的结果作比较。
 
(2)expression [NOT] IN (sqlstatement)
   只能在主查询检索那些记录。
   expression: 用以搜寻子查询结果集的表达式。
   eg:  select * from table1 where field1 in (select field2 from table2);
        //field1通常等同field2
   等价于select * from table1,(select distinct field2 from table2 ) table2 where table1.field1 = table2.field;
 
(3)[NOT] EXISTS (sqlstatement)
  select * from table1 where exists ( select null from table2 where field2= field1);
 
ps:外层表是小表时使用EXISTS较快;若两表数据量接近,则使用IN 较快。
阅读(4007) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~