作者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
推 shastar:感謝~ 那請問我原本的寫法OK嗎? 09/21 19:57
→ adrianshum:最大問題是你怎麼知道 t1 有哪幾個 field? 09/22 17:53
推 shastar:對對 就是除了t1.*這行之外 where的部份 09/22 22:14
→ adrianshum:其他的大概ok 啦,雖然我會習慣把join field 放最前 09/22 22:29
推 shastar:thank you ^_^ 09/24 11:17