Как выбрать из базы данных отношения?

У меня есть база данных со схемой на картинке ниже, и мне нужно выбрать все, что связано с одной строкой (одним идентификатором) [letaky]. Это означает связанные [zamestnanci], каждый связанный [obsah] и каждый [knihy] в нем.

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

http://img248.imageshack.us/img248/4548/schemai.png


person Community    schedule 18.08.2010    source источник
comment
Есть ли причина для странного наименования? В этом нет особых проблем, просто будет легче понять отношения, если у них будут значимые имена. Если только это не другой язык.   -  person Delan Azabani    schedule 18.08.2010
comment
Да, это другой язык. Zamestnanci = Сотрудники, idzamestnance = employee_id и т. Д.   -  person    schedule 18.08.2010


Ответы (1)


Используйте JOIN ... ON:

SELECT * 
FROM zamestnanci
JOIN lekaty ON lekaty.zamestnanciid = zamestnanci.id
JOIN obsah ON obsah.idletaku = lekaty.id
JOIN knihy ON knihy.id = obsah.idknihy
WHERE letaky.id = 123

Вы также можете подумать, нужно ли вам INNER JOIN, LEFT JOIN или RIGHT JOIN для каждого из этих соединений. Разница между этими JOIN описана во многих других вопросах на StackOverflow, например в этом:

Различия соединения SQL

person Mark Byers    schedule 18.08.2010
comment
Итак, чтобы уточнить, добавление отношений в базе данных не меняет способ выбора данных с помощью запроса. Будет ли тогда добавление связи просто предотвратить случайное удаление связанных данных? - person Tom Hanson; 12.09.2016