正解は ウ
SQLの結合と選択条件を読み解く問題です。SQL文は「SELECT 氏名 FROM 学生, 学部 WHERE 所属 = 学部名 AND 学部.住所 = '新宿'」で、学生表と学部表を「所属=学部名」で結合し、結合相手の学部の住所が新宿である学生の氏名を求めます。学生表の各行を順に確認します。応用花子は所属が理で、学部表の理の住所は新宿なので条件を満たします。高度次郎は所属が人文で、人文の住所は渋谷なので不一致。午前桜子は所属が経済で、経済の住所は渋谷なので不一致。情報太郎は所属が工で、工の住所は新宿なので条件を満たします。したがって結果は応用花子と情報太郎の2名となり、ウが正解です。注意すべきは、条件が「学部.住所」と表名で修飾されている点です。学生表にも住所列があるため、どちらの住所で絞り込むのかを取り違えると、学生自身の住所が新宿の応用花子・午前桜子を選んでしまいます。同名列の修飾の読み取りがこの問題の核心です。
同名列がある結合では「表名.列名」の修飾がどちらの表を指すかを最初に確認。あとは1行ずつ「結合相手を探す→条件を確認」を全行分やり切れば確実に解ける。