Bagaimana saya bisa membuat kueri ini di Laravel:
SELECT
`p`.`id`,
`p`.`name`,
`p`.`img`,
`p`.`safe_name`,
`p`.`sku`,
`p`.`productstatusid`
FROM `products` p
WHERE `p`.`id` IN (
SELECT
`product_id`
FROM `product_category`
WHERE `category_id` IN ('223', '15')
)
AND `p`.`active`=1
Saya juga bisa melakukan ini dengan bergabung, tetapi saya membutuhkan format ini untuk kinerja.
p
.active
= 1 periksa tabel produk sedangkan kueri Anda menerapkannya ke tabel ProductCategory .... kan ?? atau apakah ada sesuatu yang saya lewatkan ..?Lihat dokumentasi lanjutan untuk Fluent: http://laravel.com/docs/queries#advanced-wheres
Berikut adalah contoh dari apa yang ingin Anda capai:
Ini akan menghasilkan:
sumber
table()
metode daripadafrom()
. Saya belum pernah mengalami situasi itu di L3, maaf!Anda dapat menggunakan variabel dengan menggunakan kata kunci "use ($ category_id)"
sumber
Kode berikut berfungsi untuk saya:
sumber
Anda dapat menggunakan Eloquent dalam kueri yang berbeda dan membuatnya lebih mudah dipahami dan dikelola:
dan kemudian kami menggabungkan semuanya:
Ini akan menghasilkan kueri yang sama dengan yang Anda tulis di pertanyaan Anda.
sumber
Skrip diuji di Laravel 5.x dan 6.x. The
static
penutupan dapat meningkatkan kinerja dalam beberapa kasus.menghasilkan SQL
sumber
Laravel 4.2 dan yang lebih baru, dapat menggunakan kueri hubungan percobaan: -
sumber
sumber
menggunakan variabel
sumber
Silakan coba alat online sql2builder ini
sumber