• Good article. I just want to present a style of coding that prevents this situation. I often work with queries involving a dozen tables. Notice that each table is basically a separate select statement. If I didn't code in my style, I'd quickly get confused.

    select

    p.*,

    c.*

    FROM

    (-- professor data

    SELECT

    Professor.Id AS [Id],

    Professor.ProfessorName,

    CASE Professor.HasTenure WHEN 1 THEN 'True' WHEN 0 THEN 'False' ELSE NULL END AS [Has Tenure]

    FROM Professor

    WHERE Professor.HasTenure = 'True'

    ) as P

    left outer join

    (-- class data

    SELECT

    Class.ProfessorId AS [ProfessorId],

    Class.ClassName,

    Class.ClassYear,

    Class.ClassSemester

    FROM Class

    WHERE Class.ClassYear >= 2011

    ) as c on p.Id = c.ProfessorId