Решение: Поиск жителей по родству
Ниже представлены два фрагмента таблиц из базы данных о жителях микрорайона. Каждая строка таблицы 2 содержит информацию о ребёнке и об одном из его родителей. Информация представлена значением поля ID в соответствующей строке таблицы 1. Определите, для скольких жителей выполнено условие, что она (он) родилась(-лся) в том же городе, что и её (его) бабушка или дедушка. При вычислении ответа учитывайте только информацию из приведённых фрагментов таблиц.
| ID | Фамилия_И.О. | Пол | Место_рождения | ID_Родителя | ID_Ребёнка |
|---|---|---|---|---|---|
| 142 | Бортко Г.Г. | Ж | Иркутск | 151 | 145 |
| 143 | Бортко Н.К. | М | Омск | 151 | 146 |
| 145 | Митта А.В. | М | Кемерово | 151 | 147 |
| 146 | Митта В.В. | М | Абакан | 165 | 151 |
| 147 | Митта К.В. | Ж | Абакан | 159 | 152 |
| 151 | Митта С.О. | Ж | Абакан | 159 | 154 |
| 152 | Ромм Г.С. | Ж | Омск | 159 | 155 |
| 154 | Ромм М.С. | Ж | Иркутск | 142 | 159 |
| 155 | Ромм С.С. | М | Омск | 143 | 159 |
| 159 | Ромм Т.Н. | Ж | Омск | 165 | 160 |
| 160 | Чухрай Е.О. | М | Бийск | 142 | 162 |
| 162 | Чухрай И.Н. | Ж | Омск | 143 | 162 |
| 164 | Чухрай Н.Е. | Ж | Иркутск | 160 | 164 |
| 165 | Чухрай О.И. | М | Абакан | 162 | 164 |
Решение по шагам
3 шагаПо таблице 2 для каждого ребёнка определяем его родителя, а затем по тому же полю находим родителя этого родителя, то есть бабушку или дедушку.
Для каждой полученной пары «житель — бабушка или дедушка» сравниваем значения поля «Место_рождения». Жителя учитываем, если совпадение найдено хотя бы с одним из двух поколений предков.
После обработки всех записей из приведённых фрагментов таблиц условию соответствуют 6 жителей.
Где здесь ошибаются
Сравнивать место рождения жителя с местом рождения родителя, а не бабушки или дедушки.
Учитывать жителей, для которых нужная информация отсутствует в приведённых фрагментах.
Считать каждую подходящую связь отдельно, а не каждого жителя один раз.