2016-06-30 10 views
0

現在、私はstudentsschoolsの2つのテーブルを持っています。それらはschool_idstudents)とidschools)で接続されています。それが何かを意味するならば、これはMYSQLデータベースを持つcakePHPアプリケーションからのもので、SQLwaveを使用してクエリを実行しています。MYSQL/SQLWave-結合からの固有データの生成

私がしたいことは、特定の学校から2016として記載されているgraduation_yearの生徒のリストを作成することです。私は、クエリを実行すると、私は学生のすべてのリストからを取得しかし

SELECT DISTINCT students.first_name, students.last_name, schools.name, students.graduation_year 
FROM students JOIN schools 
ON schools.id = students.school_id 
WHERE schools.name = "Central City High School" 
OR schools.name = "Gotham High School" 
OR schools.name = "Metropolis High School" 
OR schools.name = "Ivy Town High School" 
AND students.graduation_year = 2016; 

:私は学生の氏名、学校の名前を生産する目的で、次のクエリを使用し、卒業年これらの学校 - しかし、2016年に卒業した人だけではありません(私は、卒業年、2014年、2016年等の記載されていない人を取得します)。このコードを改善して、2016年に卒業した人のみを表示するにはどうすればよいですか?前もって感謝します。

+1

'(schools.name = "セントラルシティ高等学校" OR schools.name = "ゴッサム高校" や学校を。 "Central City High School"、 "Gotham(ゴーダム)"、 "セントラルシティハイスクール"、 "セントラルシティハイスクール"高等学校 "、"メトロポリス高校 "、"アイビータウン高校 ") AND students.gradu ation_year = 2016; ' – jarlh

答えて

1

ANDOR前に行くので、あなたは括弧内で一緒にschools.name条件を配置する必要があります。

SELECT DISTINCT students.first_name, students.last_name, schools.name, students.graduation_year 
FROM students JOIN schools 
ON schools.id = students.school_id 
WHERE (schools.name = "Central City High School" 
     OR schools.name = "Gotham High School" 
     OR schools.name = "Metropolis High School" 
     OR schools.name = "Ivy Town High School") 
    AND students.graduation_year = 2016; 

はしかし、INを使用すると、コードきれいになります:

SELECT DISTINCT students.first_name, students.last_name, schools.name, students.graduation_year 
FROM students JOIN schools 
ON schools.id = students.school_id 
WHERE schools.name IN ("Central City High School", "Gotham High School", 
         "Metropolis High School", "Ivy Town High School") 
    AND students.graduation_year = 2016; 
+0

説明がありがとうございました。 –

0

あなたはすべきグループあなたの条件:

SELECT DISTINCT students.first_name, students.last_name, schools.name, students.graduation_year 
FROM students JOIN schools 
ON schools.id = students.school_id 
WHERE 
(schools.name = "Central City High School" 
OR schools.name = "Gotham High School" 
OR schools.name = "Metropolis High School" 
OR schools.name = "Ivy Town High School") 
AND students.graduation_year = 2016 
関連する問題