выдача в соединении laravel в контроллере - PullRequest
0 голосов
/ 10 марта 2020

когда я применяю сервер присоединения, выведите сообщение об ошибке (2/2) QueryException SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 В синтаксисе SQL произошла ошибка; проверьте руководство, соответствующее вашей MySQL версии сервера, на предмет правильного синтаксиса для использования

my controller

$player_bet = DB::table('player_bet')
                ->join('poll', 'player_bet.poll_id = poll.id')
                ->join('poll_type', 'poll_type.id = poll.poll_type_id')
                ->join('tournament_week', 'poll.week_id = tournament_week.id')
                ->join('tournament', 'poll.tournament_id = tournament.id')
                ->join('users', 'player_bet.users_id = users.id')
                ->join('poll_winner', 'poll_winner.poll_id = poll.id AND poll_winner.user_id = users.id', 'left')
                ->where('users.id ='.$user_id)
                ->select('poll_winner.id AS winner_id, poll_winner.winning_amount AS won_amount,, poll_winner.tax_amount AS won_tax_amount, player_bet.id as bet_id, player_bet.create_time,poll.id poll_id,poll.winning_amount,poll.amount poll_amount,poll.week_id week_id,poll.description,poll.description_detail,poll_type.name poll_type,poll_type.id poll_type_id,tournament_week.week_no week_no, poll.is_close is_close, tournament.id tournament_id, tournament.name tournament_name,tournament.start_date,tournament.end_date,tournament.logo, users.username username')
                ->where('users_id',$user_id)
                ->get();

Ответы [ 3 ]

0 голосов
/ 10 марта 2020

Также Ваше Там, где условие не является правильным

0 голосов
/ 10 марта 2020

Задача 1:

Измените условие множественного числа join метод

->join('poll_winner', 'poll_winner.poll_id = poll.id AND poll_winner.user_id = users.id', 'left')

на

->leftjoin('poll_winner', function($join) {
  $join->on('poll_winner.poll_id', '=', 'poll.id')
       ->whereColumn('poll_winner.user_id', 'users.id');
})

Задача 2:

у вас есть два условия where, where должно быть таким: один - столбец, другой - значение столбца:

->where('users.id', $user_id)

Задача 3:

Если вы хотите чтобы использовать одну строку в качестве параметра метода выбора, вам нужно использовать selecRaw

->selectRaw('poll_winner.id AS winner_id, poll_winner.winning_amount AS won_amount,, poll_winner.tax_amount AS won_tax_amount, player_bet.id as bet_id, ...')

или вам нужно использовать несколько строк в качестве параметров метода выбора:

->select('poll_winner.id AS winner_id', 'poll_winner.winning_amount AS won_amount', ...)
0 голосов
/ 10 марта 2020

Ваш синтаксис соединения неверен: https://laravel.com/docs/7.x/queries#joins

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...