Sto eseguendo una query che contiene stessa sottoquestione utilizzata più volte in una clausola WHERE
.Stessa query secondaria utilizzata più volte in una singola query
Ho un tavolo con campi di traino client_id
, buyer_id
.
La sottoquery restituisce l'elenco di date da escludere dal risultato.
Ecco come lo sto usando.
SELECT
id, client_id, buyer_id
FROM relation
WHERE
client_id NOT IN (SELECT <some_id> FROM <some_table> WHERE ...)
AND buyer_id NOT IN (SELECT <some_ids> FROM <some_table> WHERE ...)
Questo funziona come previsto, ma quello che mi preoccupa che ci sono due stessi sub-query. Mi chiedo se c'è un modo in cui posso usarlo una volta e usare il risultato per entrambi i posti.
Grazie.
Hai provato sostituendo che subquery con un JOIN? – Taryn
@bluefeet, ho semplificato questa query in un modo lungo solo per darti il vero problema. Inoltre non sono in grado di capire come sarebbe la clausola 'ON 'di' JOIN'. –