我正在使用Sequel从SQLite数据库中读取行。不需要写作。
我正在使用基本联接。考虑一下:
db = Sequel.sqlite
db[:user].join_table(:left, :photos, user_id: :user_id)
这会将用户表上的照片表加入(保持没有照片的用户)。
然而,这会将用户的所有行数乘以其照片数量:
[
{user_id: 1, name: 'User1', photo_id: 1, photo_name: 'profile.jpg'}
{user_id: 1, name: 'User1', photo_id: 2, photo_name: 'cat.jpg'}
{user_id: 1, name: 'User1', photo_id: 3, photo_name: 'dog.jpg'}
{user_id: 2, name: 'User2', photo_id: 4, photo_name: 'profile.jpg'}
{user_id: 2, name: 'User2', photo_id: 5, photo_name: 'profile.jpg'}
{user_id: 3, name: 'User3', photo_id: nil, photo_name: nil}
]
我想将所有照片属性嵌套在一个键下,如下所示:
[
{user_id: 1, name: 'User1', photos: [{photo_id: 1, photo_name: 'profile.jpg'}, {photo_id: 2, photo_name: 'cat.jpg'}, {photo_id: 3, photo_name: 'dog.jpg'}]}
{user_id: 2, name: 'User2', photos: [{photo_id: 4, photo_name: 'profile.jpg'}, {photo_id: 5, photo_name: 'profile.jpg'}]},
{user_id: 3, name: 'User3', photos: [] }
]
我如何实现这种“迷你关系”?我是否必须指定模型?