Re: [SQL ] 請問利用INNER JOIN串聯三張以上的資料 …
※ 引述《CYBASTER (雞巴班長退伍囉)》之銘言:
: 各位先進大家好:
: 小弟最近在練習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的訊息。
: 上網爬文或查書,也沒有類似的示例可供參考,不知能否請各位高手賜教?謝謝!
可以去看 O'Reilly 的 SQL 學習手冊
裡面有蠻多進階及初階的 SQL 語法應用
你想要的聯結三張以上的資料表也說明的蠻清楚的
http://www.oreilly.com.tw/product_others.php?id=a192
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.67.95.102
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 2 之 3 篇):