@WyNotMe wrote:
Chào mn. Hiện tại mình trong database mình có tạo 4 bảng. Đại loại ý tưởng của mình là một sản phẩm X sẽ được chia nhỏ ra gồm nhiều biến thể khác dựa theo màu sắc và kích thước.
4 bảng gồm:san_pham
,mau_sac
,kich_thuoc
,bien_the_san_pham
Trong đó,bien_the_san_pham
có cộtproduct_id
là foreign key tham chiếu đến khóa chínhid
củasan_pham
,color_id
tham chiếu đến khóa chínhid
củamau_sac
,size_id
tham chiếu đếnkich_thuoc
.
Bây giờ khi muốn lấy ra danh sách sản phẩm cùng với các biến thể của nó thì mình tính sử dụngLEFTJOIN
cả 4 bảng với nhau để lấy ra tất cả các biến thể dựa vào bảngbien_the_san_pham
. Sau đó sử dụng vòng lặp để nhóm riêng từng biến thể lại theoid
trongsan_pham
.
Mn có thể tư vấn cho mình xem liệu có cách nào giúp thực hiện công việc trên nhanh gọn hơn giúp mình với ạ. Cảm ơn mn. Dưới là truy vấn của mình và kết quả trả về:SELECT products.id, products.name, product_sizes.NAME AS size, product_colors.NAME AS color FROM product_variation LEFT JOIN products ON products.id = product_variation.product LEFT JOIN product_sizes ON product_variation.size = product_sizes.id LEFT JOIN product_colors ON product_variation.color = product_colors.id
id name size color 01 San pham 01 Size M Mau do 02 San Pham 02 Size M Mau do 01 San Pham 01 Size M Mau xanh 01 San Pham 01 Size M Mau cam 01 San Pham 01 Size S Mau do
Posts: 4
Participants: 3