Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Нужна помощь с SQL запросом  [new]
bigL
Member

Откуда:
Сообщений: 7
Доброго времени суток!
Если вкратце суть вот в чем: есть таблица users, где хранятся и пользователи и админы. И есть таблица queries - обращение в тех поддержку, в которую пишется id юзера, когда он создает обращение, и id админа когда он принимает в работу это обращение. Как составить sql запрос, чтобы получить юзера и если есть то и админа?
16 окт 19, 20:58    [21995857]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с SQL запросом  [new]
londinium
Member

Откуда: Киев
Сообщений: 1170
Слепить что-то вроде
SELECT Q.ID,USERR.*
FROM DBO.queries AS Q
JOIN users AS USERR ON Q.USER_ID=USERR.USER_ID
LEFT JOIN USERS AS ADMINS ON Q.ADMIN_ID=USERR.USER_ID
16 окт 19, 21:29    [21995871]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с SQL запросом  [new]
bigL
Member

Откуда:
Сообщений: 7
londinium, спасибо! Но давайте усложним задачу. В таблице queries также храниться id наименования обращения, сами наименования хранятся в таблице query_options. В query_options хранится id группы обращения, которые соответственно хранятся в таблице query_groups. Возможно ли в том же запросе вывести и Группу обращения? Если возможно то желательно группу и наименование обращения объединить в одном поле.
17 окт 19, 06:25    [21995994]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с SQL запросом  [new]
londinium
Member

Откуда: Киев
Сообщений: 1170
bigL,
автор
Но давайте усложним задачу

Давайте. Рисуйте структуру таблиц и пример желаемого результата
17 окт 19, 09:02    [21996048]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с SQL запросом  [new]
bigL
Member

Откуда:
Сообщений: 7
londinium, диаграмму БД приложил, в результате хочу получить:
fio_user fio_admin group/query


К сообщению приложен файл. Размер - 57Kb
17 окт 19, 10:08    [21996121]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с SQL запросом  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20538
FROM queries q
JOIN users u1 ON q.id_user=u1.id
JOIN users u2 ON q.id_admin = u2.id
17 окт 19, 10:13    [21996126]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с SQL запросом  [new]
bigL
Member

Откуда:
Сообщений: 7
Akina, нужно еще получить name_group и name_query
17 окт 19, 11:08    [21996242]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с SQL запросом  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20538
bigL, ну добавьте нужные таблицы. Какие проблемы-то? тут же всё по прямой, без поворотов.
17 окт 19, 11:10    [21996246]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с SQL запросом  [new]
bigL
Member

Откуда:
Сообщений: 7
Всем спасибо, получилось!
SELECT 
   Q.date_creat AS date_creat,
   Q.status AS status,
   CONCAT(G.name_group, '. ', QO.name_query) AS query,
   CONCAT(U.fam, ' ', U.name, ' ', U.lastname) AS fio_user,
   CONCAT(A.fam, ' ', A.name, ' ', A.lastname) AS fio_admin
FROM queries AS Q
JOIN users AS U ON Q.id_user = U.id
JOIN query_options AS QO ON Q.id_query = QO.id
JOIN query_groups AS G ON QO.id_group = G.id
LEFT JOIN users AS A ON Q.id_admin = A.id
17 окт 19, 11:46    [21996323]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с SQL запросом  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7780
bigL,

рассадите пользователей и админов по разным таблицам, т.к. это логически разные сущности.
17 окт 19, 13:55    [21996522]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с SQL запросом  [new]
msLex
Member

Откуда:
Сообщений: 8093
Владислав Колосов
bigL,

рассадите пользователей и админов по разным таблицам, т.к. это логически разные сущности.

и что же , админ одного продукта не может обратиться в тех поддержку другого?
17 окт 19, 13:59    [21996529]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с SQL запросом  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31371
msLex
Владислав Колосов
bigL,

рассадите пользователей и админов по разным таблицам, т.к. это логически разные сущности.

и что же , админ одного продукта не может обратиться в тех поддержку другого?
Если разделять, то не может.
Он как пользователь может обратиться в поддержку, но как админ не может, по крайней мере, если в бизнес-логике не предусмотрен субподряд.
А физический человек по этой логике должен записываться в третью таблицу (если нужно иметь такую сущность). Потому что он может быть и пользователем, и админом, а может и никем из них. При этом может быть пользователь или админ, не являющийся физическим лицом.

В общем, вариантов может быть много :-)

Хотя, конечно, чаще делают одну таблицу, так что Владислав Колосов я тут не поддержу, тем более не зная задачи.
17 окт 19, 20:51    [21996932]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с SQL запросом  [new]
bigL
Member

Откуда:
Сообщений: 7
Господа, я опять за помощью! Задача усложнилась!
Нужно получить список только тех обращений, которые относятся к группе, закрепленной за конкретным админом.

К сообщению приложен файл. Размер - 63Kb
22 окт 19, 18:57    [22000169]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с SQL запросом  [new]
bigL
Member

Откуда:
Сообщений: 7
Отбой! Через вложенный запрос получилось
WHERE G.id IN (SELECT id_group FROM rel_user_group WHERE id_user = 3)
22 окт 19, 19:21    [22000188]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить