הגעתי לשיטה השנייה, ל- Nested set model.
בכותרת "Retrieving a Full Tree" של השיטה השנייה ניתן לראות שהשאילתא שהם כתבו היא:
קוד:
SELECT node.name
FROM nested_category AS node,
nested_category AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND parent.name = 'ELECTRONICS'
ORDER BY node.lft;
ואני לא מבין למה הם עשו INNER JOIN? מה היתרון בזה?
הצלחתי לשחזר את אותן התוצאות בדיוק באותו הסדר עם השאילתא הבאה, ללא טבלת ה-parent:
קוד:
SELECT * FROM nested_category AS node
WHERE node.lft BETWEEN node.lft AND node.rgt
ORDER BY node.lft;
בתגובה להודעה מספר 2 שנכתבה על ידי טוארג שמתחילה ב "אתה ביצעת שליפה "שטוחה" - יש..."
כן אבל בכל זאת בסוף אני מקבל את אותן התוצאות.
בשאילתא שהם כתבו, סה"כ המידע שנשלף מהטבלה parent זה הרשומה עם הקטגוריה ששמה 'ELECTRONICS'. כלומר זה התוסף היחיד... שהוא מיותר, כפי שאפשר לראות שהם גם לא שולפים תוצאות מטבלת ה-parent בפיסקת ה-SELECT.