We have moved our forum to GitHub Discussions. For questions about Phalcon v3/v4/v5 you can visit here and for Phalcon v6 here.

Phalcon - How do i do a SELECT IN Subquery with Phalcon models ?

I need to know how to do i do a subquery type selection with phalcon models?

for example i want to select all the users who viewed me, they are stored in the UserView table with columns 'id','user_from','user_to' (mapped by User table user_id to either user_from or user_to)

so i want to select all the users who has a user_to as with the current user, and group by user_to make sure i only get one recorded, I wrote below function to do this but there is fundamental two problems

  1. Is how to do sub-query using phalcon models

  2. Is my logic correctly applied on the back-end of the DB (as i cant see real executed query)

public function getUserWithViewedMe($limit=1000000){

return User::query()

->rightJoin("XYZ\Models\UsersView")

->andWhere(" XYZ\Models\UsersView.user_from IN :user_id: ",array('user_id' => $this->user->user_id) )

->group('user_id')

->order("XYZ\Models\UsersView.id DESC ")

->limit($limit)

->execute();

}

This returns empty set...



58.4k

Hey

You can take look at https://blog.phalcon.io/post/phalcon-2-0-3-released to see how to use subqueries