我是 SQLite 的初学者,我有两个简单的表如下:
-
contact
id 为 PK,名称为 TEXT -
phoneNumber
id 为 PK,contactId 为 FK to contact.id,号码为 TEXT
简单来说,一个联系人可以有多个电话号码。每个电话号码条目/行都有一个约束,通过引用联系人 ID 作为外键。
我希望选择所有联系人及其电话号码。所以我想,对于我的 resultSet
中的每一行,我有
- 联系人的唯一 ID
- 联系人姓名
- 联系人电话号码的数组
有没有一种方法可以通过一个查询(也许与子查询结合使用)来实现这一点?否则,我必须做出两项声明,一项用于获取所有联系人,一项针对每个联系人获取其各自的电话号码。
感谢您的帮助!
最佳答案
如果您可以接受将所有联系人电话号码作为逗号分隔列表,那么这里有一个选择:
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;
关于java - SQLite:选择引用同一外键的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51967299/