2016-05-11 9 views
0

私はstudentsテーブルにフィールドstudent_id(外部キーを含むテーブルcommentsを持っている。 私は私がやりたい何か別のテーブルにstudentsSQLで「例外」を選択する方法は?

を持っているが、任意のコメントを行っていないすべての学生を表示するクエリを実行しています。私が持っているSQLは、コメントのみ私は?

+0

すべての3つの答えを完全に、私はちょうどので、私はPhillipXTを受け入れる「S」とMrunalとゴードン・リノフ方法を見ていませんこれは私が見た唯一のSQLスタイルなので、純粋に答えてください(私はSQLに全く新しいものですが、昨日学習し始めたので知識の不足を許してください) – oneman

+0

"s"はテーブル名の単なるエイリアスです。長いテーブル名のショートカットにすることもできますし、Gordon Linoffが親クエリのテーブルを参照するために行ったようなサブクエリでも使用できます。 – PhillipXT

答えて

1

あなたはこれを行うことができます:作業以下

SELECT studentID, email, first_name, last_name 
FROM students 
LEFT JOIN comments ON students.id = comments.student_id 
WHERE comments.student_id IS NULL 
4

一つの方法は、を使用していますコメントしていない学生を表示するには、この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 
       ); 
1
select s.studentID, s.email, s.first_name, s.last_name from students s where s.id not in (select student_id from comments); 
関連する問題