Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос на выборку / 4 сообщений из 4, страница 1 из 1
08.08.2013, 12:35:08
    #38359480
aleksey123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на выборку
Замучал весь мозг. не получается оптимально выстроить запрос. прошу помощи профи.
есть одна таблица. со следующей структурой:
id priznak value
1 a 454
2 а 123
3 a 147
4 a 543
5 a 967
6 b 765
7 b 454
8 b 543

в такой таблице у меня порядка 5 млн записей. индексы проставлены.
требуется следующая выборка:
нужно выбрать поля с priznak = a, НО если в таблицей есть запись с priznak = b со значением value = значению value с признаком a, то НЕ выбирать строку с priznak = a, а выбирать только с priznak = b
кажется, очень смутно объяснил, но, прочитав вроде всё ок.
в общем, результатом запроса должно быть что-то вроде:
1 b 454
2 а 123
3 a 147
4 b 543
5 a 967
6 b 765

пробовал написать запрос с использованием подзапроса where not exists... работает медленно очень.
...
Рейтинг: 0 / 0
08.08.2013, 13:36:41
    #38359614
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на выборку
aleksey123,

Код: sql
1.
2.
3.
4.
5.
6.
select /* distinct */
 coalesce(b.id,a.id)
 ,coalesce(b.attr,a.attr)
 ,coalesce(b.value,a.value)
from table t1
left join table t2 on t1.attr='a' and t2.attr='b' and t1.value=t2.value
...
Рейтинг: 0 / 0
08.08.2013, 13:39:47
    #38359621
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на выборку
Код: sql
1.
2.
3.
select max(priznak), value
from table1
group by value
...
Рейтинг: 0 / 0
08.08.2013, 14:28:27
    #38359717
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на выборку
tanglir, точнее (не 8 строк, а 6) так:
Код: sql
1.
2.
3.
4.
select * 
from myTable a
left join myTable b on b.priznak!=a.priznak and b.value=a.value 
where ifnull(b.priznak,'b')!='a'
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос на выборку / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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