【发布时间】:2009-01-23 16:44:32
【问题描述】:
我认为这应该很容易,但它在逃避我。我在帐户和帐户组之间建立了多对多的关系。一个帐户可以在零个或多个组中,因此我使用的是标准连接表。
Accounts
--------
ID
BankName
AcctNumber
Balance
AccountGroups
-------------
ID
GroupName
JoinAccountsGroups
------------------
AID
GID
我正在使用 MS Access,FWIW。此外,这适用于低带宽情况,因此代码优化不如简单/可读性重要。
我使用 php 作为表示层,所以 Access 的基本结果很好。
至于如何处理多结果情况,我实际上有两件事我正在尝试构建。第一个在一个列中列出所有组:
Bank AcctNum Balance Groups
--------|--------------|----------|----------------
Citi 930938 400 Payroll
HSBC 8372933 100 Monthly, Payroll
Wells 09837 800 -
Chase 8730923 250 Monthly
第二个是主从列表:
Name AcctNum Balance
------------|----------|----------
Payroll (2) 500
Citi 930938 400
HSBC 8372933 100
..................................
Monthly (2) 350
HSBC 8372933 100
Chase 8730923 250
..................................
Wells 09837 800
对于主从细节,我的计划只是从数据库中获取一个大的结果集,并根据需要在 php 中调整它。由于无论如何都会在 php 中进行一些重要的后处理,也许我应该只做三个单独的查询并在那里进行连接。 (因为我更喜欢那种语言。)
【问题讨论】:
-
您的数据令人困惑,因为您有一个多对多的加入,当有 2 个以上的组与一个帐户关联时,您会发生什么?您的输出显示每个帐户一行??
-
您使用的不是 Access,而是使用 Jet MDB 作为数据存储。
-
“你没有使用 Access”:你怎么知道他们没有使用 MS Access 来编写 Jet 语法 SQL(你也这样做)?您怎么知道他们没有使用 Access 2007 的 ACE,其中“A”代表“Access”?
标签: sql ms-access many-to-many