Có vẻ như phương pháp của bạn có thể là cách duy nhất để làm điều này.
Lý do là NULL
là một giá trị hợp lệ để đưa vào các đối tượng JSON. Mặc dù hầu hết các hàm tổng hợp đều bỏ qua các giá trị rỗng, vì vậy chúng sẽ bỏ qua các hàng không khớp một cách chính xác đến từ LEFT JOIN
, sẽ là một vấn đề đối với JSON_ARRAYAGG()
. Nó sẽ ngăn bạn bao gồm các giá trị null trong các tình huống khác. Không có cách nào để phân biệt null rõ ràng với LEFT JOIN
nulls.