Tôi đã có một loại cây giống như điều đang diễn ra trong cơ sở dữ liệu MySQL của tôi.Dữ liệu phân cấp trong MySQL
Tôi có cơ sở dữ liệu có danh mục và mỗi danh mục có một danh mục con. Tôi giữ tất cả các loại trong một bảng, vì vậy các cột là như thế này:
*categories table*
id | name | parent_id
1 | Toys | 0
2 | Dolls | 1
3 | Bikes | 1
Mỗi mục trong cơ sở dữ liệu của tôi được gán cho một trong những hạng mục:
*items table*
item | category_id
barbie | 2
schwinn| 3
Vấn đề là nếu ai đó muốn xem tất cả các ĐỒ CHƠI (danh mục gốc) cách tốt nhất để lấy thông tin từ cơ sở dữ liệu mặt hàng là gì? Cách duy nhất tôi biết làm thế nào để làm một cái gì đó như
SELECT *
FROM items
WHERE category_id = 2
JOIN SELECT *
FROM items
WHERE category_id = 3
etc...
Nhưng nếu tôi có 10 loại dưới Đồ chơi, thì tôi phải làm điều này và tham gia 10 lần.
Có cách nào tốt hơn để xử lý việc này không?
Tham gia đó là cú pháp SQL không hợp lệ (và nếu bạn sửa cú pháp, ví dụ: dấu ngoặc đơn quanh giây, bạn sẽ nhận được tập kết quả trống); có lẽ bạn có nghĩa là UNION? –