SQLBoiler Eager Loading: how to load specific row?

740 Views Asked by At

I want to execute this eager loading query by SQLBoiler in order to get specific row.

SELECT * FROM `room_users` WHERE (`room_users`.`room_id` IN (?,?,?,?) AND (room_users.user_id=?, 2));

But, I don't know how to write query in SQLBoiler.

My code is here:

    return entity.Rooms(
        qm.Load(entity.RoomRels.RoomUsers, qm.Where("room_users.user_id=?, 2")),
    ).All(ctx, ur.DB)

this code execute this query

SELECT * FROM `room_users` WHERE (`room_users`.`room_id` IN (?,?,?,?)) AND (room_users.user_id=?, 2);

Can anyone teach me how to load specific row by SQLBoiler.

2

There are 2 best solutions below

0
On

You can do something like this,

return entity.Rooms(
    qm.Load(qm.Rels(entity.RoomRels.RoomUsers), entity.RoomUsersWhere.UserID.EQ(2)),
).All(ctx, ur.DB)
0
On

this query did work for me

 return entity.Rooms(
    qm.Load(qm.Rels(entity.RoomRels.RoomUsers), qm.Where("room_users.user_id=?", 2)),
).All(ctx, ur.DB)