Выбрать все значения таблиц внутри whereExist — Laravel

Я должен выбрать несколько других столбцов, а не только верхние столбцы таблицы. У меня есть код;

$records_all = DB::table('table1')
->whereExists(function($query) use ($date) {
$query->select(DB::raw(1))
->from('table2')
->whereRaw('table2.table1_id = table1.table1_id')
->whereNotExists(function($query) use ($date) {
$query->select(DB::raw(1))
->from('table3')
->whereRaw('table2.table2_id = table3.table2_id')
->whereRaw("DATE(table3.date)='" . $date . "'");
});
})
->orderBy('url')
->get();

Это дает мне записи для таблицы 1, когда это необходимо. но как получить что-нибудь из table2 или table3?

Я использую Laravel 4.2

Спасибо за любую помощь.

2

Решение

замените DB :: raw (1) на нужный вам столбец и разделите запятую

$records_all = DB::table(DB::raw('table1, table2, table3'))
->select('table1.*','table2.table2_id','table3.table3_id')
->whereExists(function($query) use ($date) {
$query->from('table2')
->whereRaw('table2.table1_id = table1.table1_id')
->whereNotExists(function($query) use ($date) {
$query->from('table3')
->whereRaw('table2.table2_id = table3.table2_id')
->whereRaw("DATE(table3.date)='" . $date . "'");
});
})
->orderBy('url')
->get();

чтобы напечатать последний выполненный запрос сразу после вышеуказанного оператора

$queries = DB::getQueryLog();
$last_query = end($queries);
print_r($last_query);exit;
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]