아래와 같은 경우 Subquery라 보시면 됩니다.
$user = User::find(1); $posts = Post::whereUserId($user->id)->get(); =~ select * from posts where user_id = ( select id from users where id = 1 );
Join은 Subquery와 다른 겁니다. 엘로퀀트의 관계된 모델 조회는 Subquery보다는 Join이라 보시는게 맞습니다. 쿼리를 로그로 찍어 보시는게 좋겠습니다.
--
덧
뷰페이지의 테이블에서 해당 hasOne의 toSql()를 찍어봤을 때 테이블의 row마다 select * from table_name 이런식으로 찍혀서 혹시 subquery 형식으로 불러오는게 아닌가 했습니다.
결국엔 subquery로 호출이 되는건 아닌거죠..?
Model에서 hasOne이나 hasMany를 사용해서 join 테이블을 사용하는데 이게 subquery를 사용하는 것과 같나요?