Sobes.tech
Junior — Middle

Vai esat izveidojis sarežģītas SQL vaicājumus ar daudzām nosacījumiem un joiniem?

sobes.tech AI

Atbilde no AI

Jā, manā praksē esmu veidojis sarežģītas SQL vaicājumus ar daudzām nosacījumiem un joiniem. Šādi vaicājumi bieži tiek izmantoti, lai iegūtu apkopotus datus no vairākām tabulām, filtrētu pēc dažādiem parametriem un optimizētu vaicājumu izpildi.

Piemēram, Node.js vidē, izmantojot knex bibliotēku, ir iespējams veidot vaicājumu ar vairākām join un nosacījumiem:

const knex = require('knex')({client: 'pg'});

const query = knex('orders')
  .join('customers', 'orders.customer_id', 'customers.id')
  .leftJoin('payments', 'orders.id', 'payments.order_id')
  .where('orders.status', 'completed')
  .andWhere('payments.amount', '>', 100)
  .select('orders.id', 'customers.name', 'payments.amount')
  .toString();

console.log(query);

Šis vaicājums ļauj iegūt pasūtījumus ar statusu "completed", kur maksājuma summa ir lielāka par 100, apvienojot datus no pasūtījumu, klientu un maksājumu tabulām.

Reālos projektos ir svarīgi uzraudzīt šādu vaicājumu veiktspēju un, ja nepieciešams, tos optimizēt, izmantojot indeksus un izpildes plāna analīzi.