Как я могу получить ВНУТРЕННЕЕ ОБЪЕДИНЕНИЕ 3 таблиц в MS SQL Server

#sql-server

Вопрос:

Из таблицы специалистов извлеките имя, фамилию и контактный номер людей, которые оказывают помощь пингвинам, из таблицы видов.

Есть 3 таблицы: tbl_specialist, tbl_species, tbl_care

Мне нужна помощь, чтобы попытаться ОБЪЕДИНИТЬ таблицы для отображения Первого, Последнего И Контакта для пингвинов.

 SELECT specialist_fname, specialist_lname, specialist_contact
FROM ((tbl_specialist
INNER JOIN tbl_species ON species_care = tbl_species.species_care)
INNER JOIN tbl_care ON care_id = tbl_care.care_id)
WHERE species_name = 'penguin'
;
 

Ответ №1:

Это немного сложно, не видя точной схемы таблиц, но ваш синтаксис для подзапроса немного отличается, и вам нужно создать псевдонимы столбцов, которые находятся в нескольких таблицах в JOIN состоянии. Попробуйте переписать свой SQL следующим образом:

 SELECT spl.specialist_fname, spl.specialist_lname, spl.specialist_contact
FROM tbl_specialist spl
INNER JOIN tbl_species s
    ON spl.species_care = s.species_care
INNER JOIN tbl_care c
    ON s.care_id = c.care_id
WHERE s.species_name = 'penguin'
 

Я, очевидно, делаю вывод, из каких таблиц в соединении взяты определенные столбцы, но, надеюсь, вы поняли идею.

Ответ №2:

Я все понял, спасибо тебе.

 SELECT specialist_fname, specialist_lname, specialist_contact
FROM ((tbl_specialist
INNER JOIN tbl_care ON tbl_care.care_specialist = tbl_specialist.specialist_id)
INNER JOIN tbl_species ON tbl_species.species_care= tbl_care.care_id)
WHERE species_name = 'penguin'
;