Re: [SQL ] 將nested轉回普通join的形式

看板Database作者 (Alien)時間17年前 (2008/09/21 19:46), 編輯推噓3(302)
留言5則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《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

09/21 19:57, , 1F
感謝~ 那請問我原本的寫法OK嗎?
09/21 19:57, 1F

09/22 17:53, , 2F
最大問題是你怎麼知道 t1 有哪幾個 field?
09/22 17:53, 2F

09/22 22:14, , 3F
對對 就是除了t1.*這行之外 where的部份
09/22 22:14, 3F

09/22 22:29, , 4F
其他的大概ok 啦,雖然我會習慣把join field 放最前
09/22 22:29, 4F

09/24 11:17, , 5F
thank you ^_^
09/24 11:17, 5F
文章代碼(AID): #18rZGYMJ (Database)
文章代碼(AID): #18rZGYMJ (Database)