作者adrianshum (Alien)
看板Database
标题Re: [SQL ] 将nested转回普通join的形式
时间Sun Sep 21 19:46:41 2008
※ 引述《shastar (shasta)》之铭言:
: 试将下列nested query 转换成只含 table join 的形式,也就是将nested query 移除。
: 其中Table1 与Table2 是Relational Table,Field1~Field4 是Table 中之栏位。
: ---------------------------
: SELECT *
: FROM Table1
: WHERE Field1 = 7 AND
: Field2 IN ( SELECT Field3 FROM Table2 WHERE Field4 = 8 ) ;
: ----------------------------
: 答:
: SELECT t1.Field1, t1.Field2, t1.Field3, t1.Field4
: FROM Table1 t1, Table2 t2
: WHERE t1.Field1=7 AND t1.Field2=t2.Field3 AND t2.Field4=8;
: 不知道这样转换对不对?请帮我看一下,谢谢!!
: 另外,我第一行可不可以写成 select t1.* 呢?
应用 t1.* 才对.
也可以考虑用 join clause:
select t1.* from table1 t1
join table 2 t2
on t1.field2=t2.field3 and t2.field4=8
where
t1.field1=7;
之类
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 202.155.236.82
1F:推 shastar:感谢~ 那请问我原本的写法OK吗? 09/21 19:57
2F:→ adrianshum:最大问题是你怎麽知道 t1 有哪几个 field? 09/22 17:53
3F:推 shastar:对对 就是除了t1.*这行之外 where的部份 09/22 22:14
4F:→ adrianshum:其他的大概ok 啦,虽然我会习惯把join field 放最前 09/22 22:29
5F:推 shastar:thank you ^_^ 09/24 11:17