私はstudents
テーブルにフィールドstudent_id
(外部キーを含むテーブルcomments
を持っている。 私は私がやりたい何か別のテーブルにstudents
SQLで「例外」を選択する方法は?
を持っているが、任意のコメントを行っていないすべての学生を表示するクエリを実行しています。私が持っているSQLは、コメントのみ私は?
私はstudents
テーブルにフィールドstudent_id
(外部キーを含むテーブルcomments
を持っている。 私は私がやりたい何か別のテーブルにstudents
SQLで「例外」を選択する方法は?
を持っているが、任意のコメントを行っていないすべての学生を表示するクエリを実行しています。私が持っているSQLは、コメントのみ私は?
あなたはこれを行うことができます:作業以下
SELECT studentID, email, first_name, last_name
FROM students
LEFT JOIN comments ON students.id = comments.student_id
WHERE comments.student_id IS NULL
一つの方法は、を使用していますコメントしていない学生を表示するには、このSQLを「逆」にはどうすればよい
SELECT studentID, email, first_name, last_name FROM "students" JOIN comments ON students.id = comments.student_id
をした学生を示し:
select s.*
from students s
where not exists (select 1
from comments c
where s.id = c.student_id
);
select s.studentID, s.email, s.first_name, s.last_name from students s where s.id not in (select student_id from comments);
すべての3つの答えを完全に、私はちょうどので、私はPhillipXTを受け入れる「S」とMrunalとゴードン・リノフ方法を見ていませんこれは私が見た唯一のSQLスタイルなので、純粋に答えてください(私はSQLに全く新しいものですが、昨日学習し始めたので知識の不足を許してください) – oneman
"s"はテーブル名の単なるエイリアスです。長いテーブル名のショートカットにすることもできますし、Gordon Linoffが親クエリのテーブルを参照するために行ったようなサブクエリでも使用できます。 – PhillipXT