[問題] SQL JOIN USING 相關問題
SELECT ACT_S, /*Q : 為什麼有些欄位不須指定table前置詞,
ex:PD.ACT_S,若是加上前置詞,
會拋錯"PD.ACT_S": invaild identifier*/
PD.ACT_N, /*Q : 又有些欄位一定要加上特定table的前置詞,
ex:AD_N,就會拋錯"column ambiguously defined"*/
COST,
PD.OG_S,
OL_S,
OG.OG_NO
FROM OG
LEFT JOIN OL
USING(OG_S)
LEFT JOIN PD
USING(OL_S)
LEFT JOIN AD
USING(ACT_S)
WHERE PD.OG_S = '20140320A'
AND OG_NO = '20130320B'
AND OL_S = '20140320C'
/*Q: 使用USING()來JOIN table順序上是不是有甚麼特別要求?
ex上例 :
FROM OG FROM OG
LEFT JOIN OL --- LEFT JOIN PD
USING(OG_S) | USING(OL_S)
LEFT JOIN PD | LEFT JOIN AD
USING(OL_S) |OL 的JOIN 移到最後,變成 => USING(ACT_S)
LEFT JOIN AD | LEFT JOIN OL
USING(ACT_S) | USING(OG_S)
<--|
如果改成這樣,會拋錯"column ambiguously defined",
但若是使用 JOIN ON 就不會有錯
*/
table內容如下:
OG 欄位 =>
OG_S P.K / INDEX
OG_NO INDEX
OL 欄位 =>
OL_S P.K / INDEX
OG_S INDEX
COST
PD 欄位 =>
PD_S P.K / INDEX
OG_S INDEX
OL_S
ACT_S
ACT_N
AD 欄位 =>
ACT_S P.K / INDEX
ACT_N
我苦惱了兩天,怎麼樣都看不懂USING JOIN 跟選擇欄位的規則,
拜託版上神手大大們解救
感激不盡 > <
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.227.141.182
→
03/21 18:43, , 1F
03/21 18:43, 1F
推
04/07 14:14, , 2F
04/07 14:14, 2F
Programming 近期熱門文章
PTT數位生活區 即時熱門文章
10
41