간단한 질문을 던지십시오. 2 개의 테이블이 있습니다. 1. 학생 2. 코스정확한 결과를 가진 SQL을 선택하십시오
학생
+----+--------+
| id | name |
+----+--------+
| 1 | User1 |
| 2 | User2 |
+----+--------+
코스
+----+------------+------------+
| id | student_id | course_name|
+----+------------+------------+
| 1 | 1 | English |
| 2 | 1 | Chinese |
| 3 | 2 | English |
| 4 | 2 | Japanese |
+----+------------+------------+
나는 결과를 영어와 중국어, NOT 영어 또는 중국어 촬영 한 모든 학생을 좀하고 싶습니다.
예상 결과 :
+----+------------+------------+
| id | student_id | course_name|
+----+------------+------------+
| 1 | 1 | English |
| 2 | 1 | Chinese |
+----+------------+------------+
우리가 일반적으로 수행하는 것은
select * from student join course on (student.id = course.student_id) WHERE course_name = 'English' OR course_name = 'Chinese'
하지만,이 결과에 내 결과를 기대하지 않는 사용자 2의 기록을 얻을 수 있습니다. 나는 기록이 사용자에게 과정을 영어로만 보여줄 것을 원한다. + 중국어 만.
숙제 인 경우이를 그대로 기재하십시오. 그리고 명확성을 위해 기준을 충족시키지 못하는 학생을 추가하십시오. –
기준을 충족시키지 못하는 학생은 이미 있습니다. student_id = 2 ... – ivans
이것은 숙제가 아니며 학생이 아니며 더 복잡한 검색 기준을 실제로 풀었습니다. 단순화 된 버전의 예제. 대부분의 웹 사이트는 여러 검색 기준을 사용합니다. 결과를 얻기 위해 OR을 사용하고있는 것은 틀림 없습니다. 내가 생각하고있는 것, 사람들이 정확하게 2 코스를 원한다면, 또는 사용하지 않는다면 어떨까요? 또한 OR을 사용하여 예상 결과 중 하나를 얻을 수도 있지만 원치 않는 결과를 얻을 수도 있습니다. 이것이 내가이 마음에서 나오는 이유입니다. – Shiro