2015-08-31 4 views
0

У меня есть две таблицы:Sql запрос для следующего

Table_1: (Name, Street, City) 
Table_2: (Name, Teacher_Name) 

Столбец Имя в Table_1 содержит имя Стьюдента, а также имя Учителя в Table_2 колонке Name содержит только имя студента и TEACHER_NAME содержит имя Учителя, соответствующее студент.

Итак, мой вопрос заключается в том, что будет SQl-запрос для поиска всех учеников, которые живут на одной и той же улице и в городе, как их учителя.

, пожалуйста, помогите и заблаговременно.

+1

mysql или sql-server? Пожалуйста, только пометьте механизм базы данных, на котором вы фактически используете – baao

+0

Я использую sql-сервер. –

+0

Прочтите приведенные ниже ответы. –

ответ

0

Попробуйте этот запрос:

SELECT DISTINCT t1.Name 
FROM Table_1 t1 INNER JOIN Table_2 t2 
ON t1.Name = t2.Name 
INNER JOIN Table_1 t3 
ON t3.Name = t2.Teacher_Name 
WHERE t1.Street = t3.Street AND t1.City = t3.City 

Вам нужно зарегистрироваться дважды, чтобы достичь того, чего вы хотите. Первое соединение необходимо для соединения таблицы адресов с таблицей моста студентов с преподавателями. Затем вам нужно присоединиться, чтобы получить адреса для этих учителей.

+0

yup ... это работает .. но нет ли более простого способа –

0

Вам необходимо дважды присоединиться к таблице_1. Вроде так:

SELECT students.Name, teachers.Name 
FROM Table_2 AS teacher_student 
JOIN Table_1 AS students ON students.Name = teacher_student.Name 
JOIN Table_1 AS teachers ON teachers.Name = teacher_student.Teacher_Name 
WHERE students.Street = teachers.Street 
AND students.City = teachers.City 
+0

запрос работал для меня .. –

Смежные вопросы