Pendekatan yang sama sekali baru. where
Your Anda kondisinya ada di dua meja, tapi sepertinya itu tidak perlu.
Perubahan pertama adalah:
where a1_.id = 1136 or a1_.parent_id = 1136
Saya pikir struktur yang Anda inginkan adalah pemindaian pada tabel kategori dan kemudian mengambil dari tabel iklan. Untuk membantu, Anda dapat membuat indeks pada advert(advert_category_id, created_date)
.
Saya akan tergoda untuk menulis kueri dengan memindahkan where
klausa menjadi subquery. Saya tidak tahu apakah ini akan memengaruhi kinerja:
SELECT a0_.id AS id0
FROM advert a0_ INNER JOIN
(select ac.*
from advertcategory ac
where ac.id = 1136 or ac.parent_id = 1136
) ac
ON a0_.advert_category_id = ac.id
ORDER BY a0_.created_date DESC
LIMIT 15;