Tham gia bàn với chính nó , sử dụng parent
để liên kết đến cat_id của chính.
SELECT c1.cat_id as childID, c1.cat_name ChildName, c2.cat_name as ParentName
from category c1
LEFT OUTER JOIN category c2
ON c1.parent = c2.cat_id
- Hãy cẩn thận:vì một số phần tử không có cha mẹ (
NULL
), Tôi đặtLEFT OUTER JOIN
vì vậy những hàng đó cũng được hiển thị. Nếu bạn không muốn, hãy sử dụngJOIN
thay vìLEFT OUTER JOIN
. - Bạn cũng có thể hiển thị các dòng, nhưng hiển thị một cái gì đó khác (trống hoặc atext hoặc ...) thay vì
NULL
bằng cách sử dụngCOALESCE
. - Bạn có thể coi kết quả là một (lớn) bảng mới, vì vậy bạn có thể thêm mệnh đề WHERE như bạn thường làm, ví dụ:lọc theo tên mẹ:
WHERE c2.cat_name = 'test2'