Почему Laravel / Eloquent не может использовать JOIN для быстрой загрузки?

<?php

class Cat extends Eloquent {

    public function user() {
        return $this->belongsTo('User');
    }
}

class User extends Eloquent {

    public function cats() {
        return $this->hasMany('Cat');
    }
}

Сейчас:

$cats = Cat::with('user')->get();

Выполняет 2 запроса:

select * from `cats`
select * from `users` where `users`.`id` in ('1', '2', 'x')

Почему это не может просто сделать:

select * from cats inner join users on cats.user_id = users.id

Для тех, кто говорит, что в таблице есть оба столбца идентификатора, этого можно легко избежать с помощью псевдонимов:

select 
    c.id as cats__id,
    c.name as cats__name,
    c.user_id as cats__user_id,
    b.id as users__id,
    b.name as users__name
from cats c
inner join users b on b.id = c.user_id

ОБНОВИТЬ

Кто-то указал, что Eloquent не знает столбцы таблиц из моделей, но я думаю, они могли бы предоставить способ определения их в модели, чтобы он мог использовать псевдонимы и делать правильное соединение вместо дополнительного запроса.

Ответы на вопрос(3)

Ваш ответ на вопрос