Я должен выбрать несколько других столбцов, а не только верхние столбцы таблицы. У меня есть код;
$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
Спасибо за любую помощь.
замените 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;
Других решений пока нет …