作者world294 (Uzhi)
看板Database
标题Re: [SQL ] 请问利用INNER JOIN串联三张以上的资料 …
时间Mon Sep 3 17:17:40 2007
※ 引述《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