SQL> select * from forums where forumno in ('1','2','3');FO FORUMNAME NUM RENUM -- -------------------------------------------------- ---------- ---------- MANAGER -------------------- 1 求医问药 17 31 beckham2 父母论坛 5 11 bobo3 健康与性 3 6 欧公 SQL> select * from forums where forumno='1' or forumno='2' or forumno='3';FO FORUMNAME NUM RENUM -- -------------------------------------------------- ---------- ---------- MANAGER -------------------- 1 求医问药 17 31 beckham2 父母论坛 5 11 bobo3 健康与性 3 6 欧公
我个人觉得 select * from table1 where name = (select name from table2 where address='tj') 语意不是很清楚,这条语句要不就写成这样: select * from table1,table2 where (table1.name = table2.name) and (table2.address='tj') 第二条和第三条语句结果好象是一样的。
-- -------------------------------------------------- ---------- ----------
MANAGER
--------------------
1 求医问药 17 31
beckham2 父母论坛 5 11
bobo3 健康与性 3 6
欧公
SQL> select * from forums where forumno='1' or forumno='2' or forumno='3';FO FORUMNAME NUM RENUM
-- -------------------------------------------------- ---------- ----------
MANAGER
--------------------
1 求医问药 17 31
beckham2 父母论坛 5 11
bobo3 健康与性 3 6
欧公
select * from table1 where name = (select name from table2 where address='tj')
语意不是很清楚,这条语句要不就写成这样:
select * from table1,table2 where (table1.name = table2.name) and (table2.address='tj')
第二条和第三条语句结果好象是一样的。
ORA-01427: 单行子查询返回多于一个行
并不符合当前使用环境。用in和用any差不多,但是一般都用in,因为简单明了。