Имею следующий SQL запрос:
update LOW_PRIORITY zoho_contacts z
inner join
(select contactid, min(due_date) as mini_date
from zoho_invoices
where deleted_at is null and due_date is not null and summa_oplaty > 0
group by contactid ) co using (contactid)
set z.data_pervoy_pokupki = co.mini_date
where z.contactid = co.contactid AND z.data_pervoy_pokupki IS null
пытаюсь переписать его в синтаксисе QB:
DB::table('zoho_contacts z')
->innerJoin(DB::table('zoho_invoices')
->select(DB::raw('contactid, min(due_date) as mini_date'))
->whereNull('deleted_at')
->whereNotNull('due_date')
->where('summa_oplaty', '>', 0)
->groupBy('contactid') . ' as co', 'z.contactid', 'co.contactid' )
->update(['z.data_pervoy_pokupki' => 'co.mini_date'])
->where('z.contactid', 'co.contactid')
->whereNull('z.data_pervoy_pokupki');
dd(DB::getQueryLog());
Получаю ошибку:
Object of class Illuminate\Database\Query\Builder could not be converted to string которая указывает на строку ->groupBy('contactid') . ' as co', 'z.contactid', 'co.contactid' )
думаю, что это относится к
' as co'
Подскажите плз - куда это ' as co' правильно пристроить?
Зачем мне это ' as co'? Это алиас таблицы, которую нужно "приджойнить"... По-другому не придумал. В обычном запросе оно работает.
решение найдено с помощью ментора:
DB::table('zoho_contacts')
->join(DB::raw("(select contactid, min(due_date) as mini_date from zoho_invoices
where deleted_at is null and due_date is not null and summa_oplaty > 0
group by contactid ) co"),"zoho_contacts.contactid","=","co.contactid")
->where('zoho_contacts.contactid', 'co.contactid')
->whereNull('zoho_contacts.data_pervoy_pokupki')
->update(['zoho_contacts.data_pervoy_pokupki' => 'co.mini_date']) ;
пришлось распрощаться с алисом 'z' для 1-й таблицы - заменить его на полное имя и большую часть запроса поместить в DB::raw
, но это работает и это хорошо!
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Почему выдает stdClass Object ( [statusCode] => 404 [error] => Not Found [message] => Cannot POST /api/quotesTick?m=json&q=USDRUR,EURRUR,gold,silver ) , хотя если в браузер вставить то выдает курсы
Хочу написать авторизацию на сайте через facebook, и нужна помощьПолучилось получать данные от FB таким образом:
Требуется сделать так чтобы человек который пришел на сайт мог просмотреть только первый ролик из всех, на данный момент они делятся на Episode...
Столкнулся с бедой после переезда на другой VDS сервер стал ошибки выводить о том что нет такого виджета