单排一对多

时间:2015-03-12 15:54:19

标签: sql ms-access

我有一个带有联系人和电话号码表的访问数据库。每个联系人可以有0到10个电话号码。我正在尝试获取同一行上每个联系人的所有号码,以便将.csv导入另一个系统。我尝试使用一个支点,但遇到问题,因为每个联系人都有不同数量的电话号码。

1 个答案:

答案 0 :(得分:0)

因此,根据您的描述,您有一个联系人表格,如

tbl_Contacts
````````````
contactID   |   contactName
------------+---------------
1           |   Jones
2           |   Jackson

客户的电话记录,

tbl_PhoneRecords
````````````````
phoneID |   contactID   |   contactNumber
--------+---------------+-----------------
1       |   1           |   555-555-5555
2       |   1           |   555-444-7777
3       |   2           |   111-111-1111

您想要的输出就像,

qry_Output
``````````
contactID   |   contactName |   joinedContact
------------+---------------+-------------------------------
1           |   Jones       |   555-555-5555, 555-444-7777
2           |   Jackson     |   111-111-1111

您可以使用Allen Browne的代码Concat Related。所以你的SQL就像是,

SELECT 
    tbl_Contacts.contactID,
    tbl_Contacts.contactName,
    ConcatRelated("contactNumber", "tbl_PhoneRecords", "contactID = " & tbl_Contacts.contactID) As joinedContact
FROM
    tbl_Contacts;

希望这有帮助!