@eltraktorist

Как выбрать из таблицы запись, которой соответствует только один результат?

Столкнулся с такой проблемой.
Есть модуль электронных заявок, в которой есть две таблицы. В первой (steps) хранится информация об этапе. В ней есть поле (uid) ответственного (того, кто заявку должен исполнить). Есть два случая: когда ответственный один - тогда в uid указан id пользователя, и когда ответственных несколько - тогда в поле uid ставиться 0, и во вторую таблицу (steps_uids) пишется id этапа и id ответственных, где связка идёт по id этапа.
Вопрос: возникает ситуация, когда нужно выбрать из steps_uids (то есть из группы) те этапы, где только один ответственный (не спрашивайте как так получилось). Как это сделать? Пытался реализовать таким образом (не ругайте, я пока новичок)
SELECT hrs.tid
FROM helpdesk_route_steps hrs
LEFT JOIN helpdesk_route_uids hru ON hrs.rid=hru.rid
WHERE hrs.revision = 0
AND hru.uid = 10744
group by hrs.rid
having count(hru.rid) = 1
  • Вопрос задан
  • 2175 просмотров
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
IF EXISTS() ......... LIMIT 1
Ответ написан
Комментировать
@eltraktorist Автор вопроса
решил проблему немного переделав запрос
select hrs.tid from helpdesk_route_uids hru, helpdesk_route_steps hrs
where hrs.rid=hru.rid
and hrs.tid=ht.id
and hru.rid in (select rid from helpdesk_route_uids where uid = %user_id%)
group by hru.rid having count(hru.rid) = 1
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы