Шешімі: Родственные связи в базе данных
Ниже представлены два фрагмента таблиц из базы данных о жителях микрорайона. Каждая строка таблицы 2 содержит информацию о ребёнке и об одном из его родителей. Информация представлена значением поля ID в соответствующей строке таблицы 1. Определите, сколько жителей родились в том же городе, что и хотя бы одна (один) из их бабушек или дедушек. При вычислении ответа учитывайте только информацию из приведённых фрагментов таблиц.
| ID | Фамилия_И.О. | Пол | Место_рождения |
|---|---|---|---|
| 55 | Гурвич М.И. | Ж | Воронеж |
| 56 | Гурвич Н.И. | М | Белгород |
| 57 | Даль Е.И. | Ж | Курск |
| 60 | Даль М.И. | М | Курск |
| 61 | Дейнеко А.Г. | Ж | Воронеж |
| 62 | Дейнеко К.Н. | М | Воронеж |
| 63 | Дейнеко О.Н. | Ж | Самара |
| 66 | Лурье В.И. | Ж | Воронеж |
| 68 | Лурье Г.С. | М | Белгород |
| 69 | Лурье С.Н. | М | Белгород |
| 72 | Макаренко А.Т. | М | Курск |
| 74 | Макаренко Е.М. | Ж | Белгород |
| 77 | Макаренко С.Г. | Ж | Самара |
| 82 | Макаренко Т.С. | М | Курск |
Таблица 2 содержит следующие пары «ID_Родителя — ID_Ребёнка»: 55 — 56; 66 — 61; 68 — 61; 61 — 62; 61 — 63; 55 — 66; 69 — 68; 77 — 72; 82 — 72; 57 — 74; 60 — 74; 66 — 77; 68 — 77; 74 — 82.
Шешім по шагам
5 қадамПо таблице 2 восстанавливаем связи «родитель — ребёнок», а затем для каждого жителя определяем его бабушек и дедушек как родителей его родителей.
Житель с ID 61 родился в Воронеже. Один из его родителей имеет ID 66, а родитель жителя с ID 66 имеет ID 55 и родился в Воронеже. Житель с ID 61 подходит.
Житель с ID 62 родился в Воронеже. Его родитель имеет ID 61, среди родителей которого есть житель с ID 66, родившийся в Воронеже. Житель с ID 62 подходит.
Житель с ID 82 родился в Курске. Его родитель имеет ID 74, родители которого имеют ID 57 и 60; оба родились в Курске. Житель с ID 82 подходит.
У остальных жителей из приведённых фрагментов совпадения места рождения с местом рождения хотя бы одного дедушки или бабушки нет.
Где здесь ошибаются
Считать совпадение с местом рождения родителя, а не бабушки или дедушки.
Учитывать только бір из родителей, если в таблице указаны несколько родственных связей.
Считать жителей, для которых нужная информация отсутствует в приведённых фрагментах.