у меня такой запрос
SELECT ruangans.nama_ruangan, beds.id AS idBed, beds.nomor_bed, pasiens.nama, pasiens.status
FROM `beds` JOIN ruangans ON beds.id_ruangan = ruangans.id
LEFT JOIN pasiens ON beds.id = pasiens.id_bed
WHERE pasiens.status != 'Sudah Rawat Inap' OR pasiens.status IS NULL;
Я все еще новичок в Laravel Query Builder, мой вопрос заключается в том, как преобразовать SQL-запрос в Query Builder, особенно в операциях OR и IS NULL. Спасибо






DB::table("beds")
->join("ruangans", "beds.id_ruangan", " = ", "ruangans.id")
->leftJoin("pasiens", "beds.id", " = ", "pasiens.id_bed")
->select("ruangans.nama_ruangan", "beds.id as idbed", "beds.nomor_bed", "pasiens.nama", "pasiens.status")
->where("pasiens.status", "! = ", 'Sudah Rawat Inap')
->orWhereNull("pasiens.status")
->get();
Laravel предлагает несколько вариантов методов where для добавления предложений «where» в ваши запросы. Вы можете найти их здесь: https://laravel.com/docs/10.x/queries#basic-where-clauses
Вы можете использовать
$query = DB::table('beds')
->join('ruangans', 'beds.id_ruangan', '=', 'ruangans.id')
->leftJoin('pasiens', 'beds.id', '=', 'pasiens.id_bed')
->select(
'ruangans.nama_ruangan',
'beds.id AS idBed',
'beds.nomor_bed',
'pasiens.nama',
'pasiens.status'
)
->where(function ($query) {
$query->where('pasiens.status', '!=', 'Sudah Rawat Inap')
->orWhereNull('pasiens.status');
})
->get();
Как вы знаете, мы используем where для фильтрации данных. В этом я использовал механизм подзапроса для фильтрации данных в одной и той же таблице pasiens.
Подробнее о База данных: конструктор запросов