Laravel Left join возвращает пустой результат, когда запись недоступна в правой таблице

#php #mysql #join #laravel #left-join

#php #mysql #Присоединиться #laravel #левое соединение

Вопрос:

У меня проблемы с синтаксисом Laravel. У меня есть leftjoin как таковой:

 $query=DB::table('jobs');
$query->leftjoin( 'attribute_int_data', 'attribute_int_data.job_id', '=', 'jobs.job_id' );
  

Проблема в том, что там, где в таблице attribute_int_data нет записи, я не получаю job_id из таблицы jobs.

Я понимаю, что это может быть связано с тем, что у меня есть два одинаковых имени столбца, и мне нужно применить псевдоним к одному из имен столбцов, чтобы получить job_id.

Кто-нибудь может помочь с синтаксисом, пожалуйста?

Приветствия.

Ответ №1:

Нашел решение, надеюсь, оно кому-то пригодится.

Я добавил массив в get, где я переименовал конфликтующее имя столбца job_id.

 $get_array = array( 
    'jobs.job_id as real_id',
    ...other values...
)
  

Затем, чтобы реализовать это, когда я получаю запрос:

 $query->get($get_array);
  

И я получаю job_id, даже если в правой таблице нет совпадающих записей.