Junior — Middle
Kas olete loonud keerulisi SQL-päringuid paljude tingimuste ja join-idega?
sobes.tech AI
Vastus AI-lt
Jah, minu praktikas jooksul olen koostanud keerukaid SQL-päringuid, millel on palju tingimusi ja join-e. Selliseid päringuid kasutatakse sageli andmete kogumiseks mitmest tabelist, erinevate parameetrite järgi filtreerimiseks ja päringute jõudluse optimeerimiseks.
Näiteks Node.js-is, kasutades knex teeki, saab koostada päringu mitme join-i ja tingimusega:
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);
Selline päring võimaldab saada tellimusi, mille staatus on "completed" ja maksumus on suurem kui 100, ühendades andmeid tellimuste, klientide ja maksete tabelitest.
Reaalsetes projektides on oluline jälgida selliste päringute jõudlust ning vajadusel neid optimeerida indeksite ja täitmisplaani analüüsi abil.