PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment créer un INTERSECT en utilisant Eloquent Builder sans avoir de collection

J'ai ceci dans l'un de mes contrôleurs, il utilise EXCEPT , mais vous pouvez le modifier pour qu'il se croise.

Je préconstruis 2 requêtes distinctes. Plus que moi :

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

Je serais curieux de savoir si c'est la meilleure solution. Au moins ça fait l'affaire pour moi.