PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come faccio a creare un INTERSECT usando Eloquent Builder senza avere una collezione

Ce l'ho in uno dei miei controller, sta usando EXCEPT , ma puoi cambiarlo in modo che si intersechi.

Ho precompilato 2 query separate. Di quello che faccio:

$query = Thread::query() 
    ->fromRaw( 
        '(SELECT * FROM ((' . $unioned->toSql() . ') EXCEPT ' . $excludeExplicit->toSql() . ') AS threads) AS threads', 
        array_merge($unioned->getBindings(), $excludeExplicit->getBindings()) 
    );

Sarei curioso di sapere se questo è il modo migliore però. Almeno fa il trucco per me.