java - SQLite:选择引用同一外键的多行

标签 java sqlite

我是 SQLite 的初学者,我有两个简单的表如下:

  1. contact id 为 PK,名称为 TEXT
  2. phoneNumber id 为 PK,contactId 为 FK to contact.id,号码为 TEXT

简单来说,一个联系人可以有多个电话号码。每个电话号码条目/行都有一个约束,通过引用联系人 ID 作为外键。

我希望选择所有联系人及其电话号码。所以我想,对于我的 resultSet 中的每一行,我有

  1. 联系人的唯一 ID
  2. 联系人姓名
  3. 联系人电话号码的数组

有没有一种方法可以通过一个查询(也许与子查询结合使用)来实现这一点?否则,我必须做出两项声明,一项用于获取所有联系人,一项针对每个联系人获取其各自的电话号码。

感谢您的帮助!

最佳答案

如果您可以接受将所有联系人电话号码作为逗号分隔列表,那么这里有一个选择:

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/

相关文章:

c++ - sqlite中的嵌套语句

ruby-on-rails - 如何将 sqlite 数据库转换为 JSON

java - 在抽象 JPA DAO 中抽象命名查询

java - Appium/ Selenium : testNG parallel execution not working

java - 无法将程序作为 Silk4J 测试运行

java - Eclipse Vert.x : parsing java. 与 jackson 的时间日期

java - 旋转器无法正常工作

ios - sqlite:rowid 工作时无法选择 id

javascript - 需要将 javascript 值传递到 html 格式的建议,这样我就可以显示正确答案的成绩屏幕而不是 'document.write'

java - 如何更改 getWritableDatabase() 指向路径?