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 JOINvì vậy những hàng đó cũng được hiển thị. Nếu bạn không muốn, hãy sử dụngJOINthay 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ì
NULLbằ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'