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

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Написание простого запроса для чайника

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

AiK » 11 май 2017, 10:38

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

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

ya_yanchik-2909 » 11 май 2017, 06:52

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

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

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

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

РАБОТАЮ на IBExpert

Вернуться к началу