Это мой сценарий
- В каждом штате есть несколько зон
- Каждая зона имеет несколько районов
- В каждом округе есть несколько городов
- В каждом городе есть несколько домов
- В каждом доме проживают несколько офицеров, чья уникальная личность
Итак, теперь я хочу проверить, есть ли в таблице информация, которая принадлежит конкретному сотруднику с указанным назначением и указанной зоной.
Я пытался вот так
SELECT DISTRICT_ID FROM DISTRICT WHERE DISTRICT_ID='(SELECT DISTRICT_ID FROM CITY WHERE CITY_ID='(SELECT CITY_ID FROM CITY_INFO WHERE CITY_PIN=(SELECT CITY_PIN FROM STATION_HOUSE WHERE STATION_ID='(SELECT STATION_ID FROM OFFICER_HISTORY OH,OFFICER O WHERE OH.OFFICER_ID=O.OFFICER_ID AND (O.DESIGN_ID='"+design+"' AND O.STATUS_TYPE='ACTIVE'))'))')' AND ZONE_ID='"+zone+"'
Это означает, что в нем будет показан идентификатор района конкретного сотрудника, чей статус ACTIVE и который относится к указанной зоне.
Если указанный выше запрос возвращает информацию, это означает, что информация уже существует. Поскольку в моей таблице нет данных, связанных с условием, но я думаю, что мой sql-запрос идеален. Но это слишком долго. Если кто-нибудь поможет мне сделать его коротким и эффективным, тогда я буду очень признателен ему / ей.