@ivan8m8

Как сделать проверку по двум полям?

БД: sqlfiddle.com/#!9/0f9a0/1
Задача: найти заключенных, которые сидят в одной камере и проходят по одному делу.

Я лишь смог реализовать поиск заключенных, которые проходят по одному делу.
SELECT K.*
FROM Klienti AS K
WHERE K.k_nomer_dela IN (
  SELECT Kk.k_nomer_dela
  FROM Klienti AS Kk
  GROUP BY Kk.k_nomer_dela
  HAVING COUNT(*) > 1
)

Отдельно аналогично могу реализовать поиск заключенных, которые сидят в одной камере.
SELECT K.*
FROM Klienti AS K
WHERE K.nomer_kameri IN (
  SELECT Kk.nomer_kameri
  FROM Klienti AS Kk
  GROUP BY Kk.nomer_kameri
  HAVING COUNT(*) > 1
)

А вот сделать это в рамках одного запроса не могу...
По сути нужно соединить эти два запроса вместе, но у меня, к сожалению, уже второй день ничего не выходит :(
Помогите пожалуйста.
Поля, по которым идет выборка находятся в Таблице Klienti и называются k_nomer_dela, nomer_kameri.

Заранее благодарю.
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
@nelson
Что если просто поставить оба условия в одном запросе и AND между ними?
SELECT K.*
FROM Klienti AS K
WHERE K.k_nomer_dela IN (
  SELECT Kk.k_nomer_dela
  FROM Klienti AS Kk
  GROUP BY Kk.k_nomer_dela
  HAVING COUNT(*) > 1
)
AND 
K.nomer_kameri IN (
  SELECT Kk.nomer_kameri
  FROM Klienti AS Kk
  GROUP BY Kk.nomer_kameri
  HAVING COUNT(*) > 1
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы