Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Есть две таблцы
goods - товары
purchases - заказы
В goods есть поле test_product которое может быть либо 0 либо 1 - это означает товар на тестовый или нет.
purchases тут собственно все заказы скидываются, и таблица purchases связана с goods через внешний ключ good_id.
Также в поле purchases есть поле tracker_number сюда пишу номер трекинга после того как товар прошел проверку на складе, по умолчанию поле NULL.
Мне нужно отправлять на склад товар для получения номер tracker_number. Для этого нужно сделать выборку из двух таблиц:
purchases где все tracker_number = NULL и каждый товар НЕ тестовый, те в таблице goods поле test_product должно быть = 0.
Я делаю так:
$purcases = DB::table('purchases')
->whereNull('tracker_number')
->whereDate('created_at','=', Carbon::today()->toDateString())
->join('goods', function ($join) {
$join->on('purchases.good_id', '=', 'goods.id');
->where('goods.test_product','=','0');
})
->get();
но он говорит что ошибка. Помогите составить нормально запрос пожалуйста.
Спасибо что потратили свое время!
Не в сети
какая ошибка?
Вижу только синтаксическую
Было
$purcases = DB::table('purchases')
->whereNull('tracker_number')
->whereDate('created_at','=', Carbon::today()->toDateString())
->join('goods', function ($join) {
$join->on('purchases.good_id', '=', 'goods.id');
->where('goods.test_product','=','0');
})
->get();
Надо
$purcases = DB::table('purchases')
->whereNull('tracker_number')
->whereDate('created_at','=', Carbon::today()->toDateString())
->join('goods', function ($join) {
$join->on('purchases.good_id', '=', 'goods.id')->where('goods.test_product','=','0');
})
->get();
Для наглядности перенес одну строку
Изменено covobo (31.05.2018 18:21:02)
Не в сети
Здравствуйте! спасибо за то что помогаете.
Но к сожалению данный код выдает ошибку
[Illuminate\Database\QueryException]
SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' i
n where clause is ambiguous (SQL: select * from `purchases` inner join `goo
ds` on `purchases`.`good_id` = `goods`.`id` and `goods`.`test_product` = 0
where `tracker_number` is null and date(`created_at`) = 2018-06-01)
[PDOException]
SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' i
n where clause is ambiguous
Не в сети
Не в сети
Страницы 1