Bonjour à tous,

J'aimerais faire une requête sql mais je ne parvient pas à trouver la syntaxe
Si quelqu'un pouvait me donner un coup de main ca serait chouette

voici la requête :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SELECT Terminaux.*
FROM Terminaux
WHERE Terminaux.IdTerminal NOT IN (
                SELECT Terminaux.IdTerminal
                FROM Terminaux INNER JOIN ReservationsDetails ON Terminaux.IdTerminal=ReservationsDetails.TerminalId
                INNER JOIN Reservations ON ReservationsDetails.IdReservation = Reservations.IdReservation
                WHERE Etat !=4)

j'ai essayé ceci sans succès :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
$Terminaux = DB::table('Terminaux')
            ->whereNotIn('Terminaux.IdTerminal',function($query){
                $query->select('Terminaux.IdTerminal')
                      ->from('Terminaux')
                      ->innerjoin('ReservationsDetails','Terminaux.IdTerminal','=','ReservationsDetails.TerminalId')
                      ->innerjoin('Reservations','ReservationsDetails.IdReservation','=','Reservations.IdReservation')
                      ->where('Etat','!=',4);
 
            })->get();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
$Terminaux = DB::table('Terminaux')
            ->whereNotIn('IdTerminal',[DB::raw("(SELECT Terminaux.IdTerminal
                FROM Terminaux inner join ReservationsDetails on Terminaux.IdTerminal=ReservationsDetails.TerminalId
                inner join Reservations on ReservationsDetails.IdReservation = Reservations.IdReservation
                where Etat !=4)")])
            ->get();

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 $Terminaux=Terminaux::select('*')
            ->whereNotIn('IdTerminal',[DB::raw("(SELECT Terminaux.IdTerminal
                FROM Terminaux inner join ReservationsDetails on Terminaux.IdTerminal=ReservationsDetails.TerminalId
                inner join Reservations on ReservationsDetails.IdReservation = Reservations.IdReservation
                where Etat !=4)")])
            ->get();
 
        dd($Terminaux);
Merci d'avance !