我是SQLite的初学者,我有两个简单的表,如下所示:
contact
,ID为 PK ,名称为 TEXT phoneNumber
,其ID为 PK ,contactId为与contact.id 的FK,数字为 TEXT < / li>
简单地说,一个联系人可以有多个电话号码。通过将联系人的ID引用为外键,每个phoneNumber条目/行都有一个约束。
我希望选择所有联系人及其电话号码。所以我想,对于resultSet
中的每一行,我都有
是否可以通过一个查询(也许与子查询一起使用)进行查询?否则,我必须做两个声明,一个要获取所有联系人,每个要一个获取各自的电话号码。
感谢您的帮助!
答案 0 :(得分:1)
如果您可以将所有联系人电话号码作为逗号分隔列表使用,那么这里是一个选择:
SELECT
c.id,
c.name,
GROUP_CONCAT(p.number) AS numbers
FROM contact c
LEFT JOIN phoneNumber p
ON c.id = p.contactId
GROUP BY
c.id, c.name;