Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Union с приоритетом / 3 сообщений из 3, страница 1 из 1
27.03.2018, 22:40
    #39621603
st90
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Union с приоритетом
Всем привет!
Есть задача.
Три выборки, объединены union.
Нужно выбрать два поля ID и тип.
Тип обзывается в зависимости от того из какой выборки попал ID.
Собственно вот:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select DISTINCT(ID), 'Текст1' as Type from Table1 t1
where t1.ClientID=123
union
select DISTINCT(ID), 'Текст2' as Type from Table2 t2
where t2.ClientID=123
union
select DISTINCT(ID), 'Текст3' as Type from Table3 t3
where t3.ClientID=123



НО! Нужно чтобы приоритетно тип отображался.
Т.е. если ID есть во всех трех выборках, то должен отображаться "Текст1".
Если первой и второй, то тоже "Текст1". Если во второй и третьей, то "Текст2".

В t-sql это можно вложенным запросом как-то сделать, а тут как можно?
...
Рейтинг: 0 / 0
27.03.2018, 22:48
    #39621605
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Union с приоритетом
FAQ по выборке первого в группе - читать...
...
Рейтинг: 0 / 0
27.03.2018, 22:52
    #39621606
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Union с приоритетом
Конкретно для этих значений поля Type можно так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT id, MIN(type) FROM
(select ID, 'Текст1' as Type from Table1 t1
where t1.ClientID=123
UNION ALL
select ID, 'Текст2' as Type from Table2 t2
where t2.ClientID=123
UNION ALL
select ID, 'Текст3' as Type from Table3 t3
where t3.ClientID=123) t
GROUP BY id

Для других возможный варианты.
А лучше заменить на числа 1,2,3.

И что за странное написание DISTINCT(ID) ?
DISTINCT - это не функция.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Union с приоритетом / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]