查询生成器OR和IS NULL在Laravel 9



我有一个这样的查询

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查询生成器,我的问题是如何将SQL查询转换为查询生成器,特别是在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表中的数据。


阅读更多关于Database: Query Builder

最新更新