Сделал запрос, используя две базы данных Laravel Query Builder - PullRequest
2 голосов
/ 20 февраля 2020

У меня есть вопрос о построителе запросов.

Я хочу сделать запрос, который будет иметь связь с двумя базами данных

Я покажу вам запрос SQL:

SELECT
naviones_db16.ps_orders.payment,
naviones_db16.ps_orders.total_paid AS total,
naviones_db16.ps_orders.current_state AS current_state,
naviones_db16.ps_orders.id_order AS id_order,
naviones_db16.ps_shop.NAME AS name_shop,
naviones_db16.ps_customer.firstname AS customer_firstname,
naviones_db16.ps_customer.lastname AS customer_lastname,
naviones_db16.ps_orders.reference,
naviones_db16.ps_orders.date_add AS fecha
FROM
ps_orders
INNER JOIN naviones_db16.ps_customer ON 
 naviones_db16.ps_customer.id_customer= 
 naviones_db16.ps_orders.id_customer
 INNER JOIN naviones_db16.ps_shop ON naviones_db16.ps_shop.id_shop = 
 naviones_db16.ps_orders.id_shop
 WHERE
 naviones_db16.ps_orders.current_state = 16
 AND 
 naviones_db16.ps_orders.id_order NOT IN (
 SELECT
    multimarket.productos.id_order
FROM
    multimarket.productos
WHERE
    multimarket.productos.id_order = naviones_db16.ps_orders.id_order
)
 ORDER BY
   naviones_db16.ps_orders.id_order DESC

Это то, что я сделал в построителе запросов

$naviones = DB::connection('naviones')->table('ps_orders')
        ->select('ps_orders.payment', 'ps_orders.total_paid AS total', 'ps_orders.current_state AS current_state', 'ps_orders.id_order AS id_order',
            'ps_shop.NAME AS name_shop', 'ps_customer.firstname AS customer_firstname', 'ps_customer.lastname AS customer_lastname', 'ps_orders.reference',
            'ps_orders.date_add AS fecha')
        ->join('ps_customer', 'ps_customer.id_customer', '=', 'ps_orders.id_customer')
        ->join('ps_shop', 'ps_shop.id_shop', '=', 'ps_orders.id_shop')
        ->where('ps_orders.current_state', '=', '16')
        ->orderBy('id_order', 'DESC')
        ->get()->toArray();

Конечно, у меня есть другое отношение: DB :: connections ('multimarket'), но я не имею ни малейшего представления о том, как я могу сделать это. Есть ли у вас какие-либо идеи?

Спасибо тебе

...