Красноречивый столбец не найден, если присоединиться к подзапросу - PullRequest
0 голосов
/ 10 июля 2019

При запросе к базе данных с помощью следующего запроса:

Album::select('album.*')
    ->where(function ($query) use ($userId) {
        $query
            //->select('album.*') <- also tried this but didn't help
            ->join('accountuser_album', 'album.id', '=', 'accountuser_album.album_id')
            ->join('accountuser', 'accountuser_album.accountuser_id', '=', 'accountuser.id')
            ->where('accountuser.user_id', $userId);
    })
    ->where(function ($query) use ($userId) {
        //Otherqueries
    })
    ->paginate($this->pageLimit, ['*'], 'page', $this->pageNumber);

Я получаю следующую ошибку:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'accountuser.user_id' in 'where clause' (SQL: select count(*) as aggregate from `album` where (`accountuser`.`user_id` = 2))

Удаление объединения из подзапроса, это работает, но это не работает для меня, потому что мне нужно несколько подзапросов с разными объединениями

Album::select('album.*')
    ->join('accountuser_album', 'album.id', '=', 'accountuser_album.album_id')
    ->join('accountuser', 'accountuser_album.accountuser_id', '=', 'accountuser.id')
    ->where(function ($query) use ($userId) {
        $query->where('accountuser.user_id', $userId);
    })
    ->where(function ($query) use ($userId) {
        //Otherqueries
    })
    ->paginate($this->pageLimit, ['*'], 'page', $this->pageNumber);

Я что-то здесь не так делаю?

...