[SQL ] 請問利用INNER JOIN串聯三張以上的資料表?
各位先進大家好:
小弟最近在練習php,便自己做了一個管帳系統,
來管理自己在四個不同銀行帳戶中「每個月的存款狀況」,
因此我一開始建立了四張資料表:
郵局:postoffice
華南:hwanan
合庫:unionbank
中信:chinatrust
每張資料表的欄位都長得一模一樣,有三個欄位:
日期:date
存款:deposit
備註:postscript
其中date是作為主鍵的欄位,並且限制使用者只能輸入「月底」的日期,
(所以像2007-2-28就可以代表「96年2月」這樣。)
然後我想要建立一個查詢,來統計自己每個月的總存款(四個帳戶的存款加總)
這個查詢的五個欄位便分別是(日期,郵局存款,華南存款,合庫存款,中信存款)
至於最後還有一個「存款加總」的欄位,將來再用php來處理,
但是重要的是先將四個資料表串接起來,
首先我先查書了解了兩個資料表的串接法像下面這樣:
SELECT postoffice.date, postoffice.deposit, hwanan.deposit
FROM postoffice INNER JOIN hwanan
ON postoffice.date = hwanan.date;
而上面這個查詢也成功的秀出來了,
但我卻突然發現我不知道如何再插入第三張和第四張資料表。
從前我是學ASP的,所以幾乎不存在這個問題,因為我會直接在access裡將查詢建立好,
再把access裡建好的SQL語法貼進ASP的code當中,可是這招到php裡卻不管用了,
似乎mysql並不能完全接受access裡通用的SQL語法?
(而且mysql也不能像access用精靈來建立關聯,再「盜拷」它的SQL語法)
如果用access來寫這個查詢的話,大概像下面這樣:
SELECT postoffice.date, postoffice.deposit, unionbank.deposit,
hwanan.deposit, chinatrust.deposit
FROM (([postoffice] INNER JOIN hwanan ON postoffice.date = hwanan.date)
INNER JOIN unionbank ON postoffice.date = unionbank.date)
INNER JOIN chinatrust ON postoffice.date = chinatrust.date;
但是寫進去後會出現supplied argument is not a valid MySQL result resource的訊息。
上網爬文或查書,也沒有類似的示例可供參考,不知能否請各位高手賜教?謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.45.58