PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie erstelle ich einen INTERSECT mit Eloquent Builder, ohne eine Sammlung zu haben

Ich habe dies in einem meiner Controller, es verwendet EXCEPT , aber Sie können es so ändern, dass es sich überschneidet.

Ich baue 2 separate Abfragen vor. Dann tue ich:

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

Würde mich aber interessieren, ob das der beste Weg ist. Zumindest funktioniert es bei mir.