Страница 1 из 1

Написание простого запроса для чайника

Добавлено: 11 май 2017, 06:52
ya_yanchik-2909
Здравствуйте! Только приступила к работе по изучению SQL.
Нужно создать такой запрос -
--- Если в таблице ReasonSuspensionOfProceedings в столбце Name поле заполнено как "С розыском", то значит столбец Мера из другой таблицы CoerciveMeasureKind и столбец Мера из таблицы PreventivePunishmentKind не должны быть пустыми. Т.е. на экран нужно вывести цельную таблицу, в которой будет указано, где именно содержатся пустые значения.
Я пока что написала как могла, на начальном уровне. Подскажите пожалуйста в каком направлении двигаться.

select *
from "ReasonSuspensionOfProceedings"
where "Name" ='В связи с розыском"

select *
from "CoerciveMeasureKind"
where "Name" = NULL

select *
from "PreventivePunishmentKind"
where "Name" = NULL

РАБОТАЮ на IBExpert

Re: Написание простого запроса для чайника

Добавлено: 11 май 2017, 10:38
AiK
ya_yanchik-2909 писал(а):РАБОТАЮ на IBExpert
Это не важно. SQL стандартизирован и все простые запросы реализуются одинаково.

Двигаться надо в направлении объединения (JOIN) двух таблиц в запросе по паре первичный ключ (primary key) -> внешний ключ (foreign key)

В исходном вопросе не хватает информации по ключам в таблицах, поэтому помочь невозможно. Примерный запрос будет таким

Код: Выделить всё

 
select 
p.*, 
c.Name, 
p.Name
from 
"ReasonSuspensionOfProceedings" r,
 "CoerciveMeasureKind" c,
"PreventivePunishmentKind" p

where 
r."Name" ='В связи с розыском"
and r.mera_id = c.mera_id
and r.mera_id = p.mera_id
Но он выдаст как раз не пустые значения.

Если нужно вывести только пустые значения, то достаточно вашего первого запроса. Если нужно и те и другие, то нужно смотреть на OUTER JOIN