• Your query can be rewritten like this:

    SELECT A.activityCode

    ,A.ActivityName + ISNULL(A.description, '') AS ActivityName

    ,A.displayOrder

    ,A.activityStartDate

    FROM Activities AS A

    LEFT JOIN Activities AS FA

    ON A.fatheractivityIncId = FA.activityIncId

    AND A.fatheractivitySqlId = FA.activitySqlId

    AND FA.isDeleted = 0

    AND A.isDeleted = 0

    LEFT JOIN Activities AS GFA

    ON FA.fatheractivityIncId = GFA.activityIncId

    AND FA.fatheractivitySqlId = GFA.activitySqlId

    AND GFA.isDeleted = 0

    LEFT JOIN Activities AS GGFA

    ON GFA.fatheractivityIncId = GGFA.ActivityIncId

    AND GFA.fatheractivitySqlId = GGFA.activitySqlId

    AND GGFA.isDeleted = 0

    That way of putting ON clauses one after another is a bit confusing indeed. It is used when mixing INNER and OUTER joins, but there are clearer ways of expressing the same query.

    -- Gianluca Sartori