powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
14 сообщений из 14, страница 1 из 1
Помогите с запросом
    #32377218
cid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть табица с данными:
+---------+-------+
| id1 | id2 |
+---------+-------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 1 | 5 |
| 2 | 7 |
| 2 | 8 |
| 2 | 9 |
| 3 | 1 |
| 3 | 10 |
| 3 | 11 |
| 3 | 12 |
| 3 | 13 |
| 3 | 14 |
| 4 | 1 |
| 4 | 6 |
| 4 | 12 |
| 4 | 15 |
| 4 | 16 |
| 4 | 17 |
+---------+-------+

Как из нее выбрать значения id1 у которых id2 = 1,2,3,4,5 ???
Другими словами, чтобы получить id1=1 (только у него есть все числа из id2)
...
Рейтинг: 0 / 0
Помогите с запросом
    #32377248
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
присоединяюсь к вопросу.

правда у меня ответ есть

Код: plaintext
1.
2.
select count(*) as shit from table
where id2= 1  or id2= 2  or id2= 3  or id2= 4  or id2= 5 
having shit =  5 


только он мне не нравится
...
Рейтинг: 0 / 0
Помогите с запросом
    #32377265
cid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот запрос у меня ничего не выдал!
...
Рейтинг: 0 / 0
Помогите с запросом
    #32377267
Sergey P.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select count(*) as shit from table
where id2 in (1,2,3,4,5)
...
Рейтинг: 0 / 0
Помогите с запросом
    #32377269
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey P.

еще нужно отобрать где каунт равно количеству искомых id2!
...
Рейтинг: 0 / 0
Помогите с запросом
    #32377275
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cid
я где-то ошибся наверно...
...
Рейтинг: 0 / 0
Помогите с запросом
    #32377287
cid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feed
Большое спасибо я разобрался :)
...
Рейтинг: 0 / 0
Помогите с запросом
    #32377310
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но это плохое решение!

всегда будет вся таблица просматриваться.

если таблица большая, то будет тормозить.
...
Рейтинг: 0 / 0
Помогите с запросом
    #32377335
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лучше в хранимой процедуре отобрать сначала все у кого id2=1, потом из них отбросить у кого id2<>2 и т.п. (рекурсивная ХП)

Только в моське нет ХП!

а на php клиенте - те же тормоза имхо
...
Рейтинг: 0 / 0
Помогите с запросом
    #32377336
cid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну за неимением лучшего, пока и это сгодится у меня он отрабатывает за 0,3-0,4 сек. при 12000 записях в таблице.
...
Рейтинг: 0 / 0
Помогите с запросом
    #32377645
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я к крутым пошел с этим вопросом...
...
Рейтинг: 0 / 0
Помогите с запросом
    #32377674
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если есть индекс id2-id1 - и наш сервер сможет так, я уверен
...
Рейтинг: 0 / 0
Помогите с запросом
    #32378281
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cid

запость, пожалуйста, describe своей таблицы и explain того запроса. интересно!

зы. про ХП я сморозил ерунду... ну отстал я, отстал!
...
Рейтинг: 0 / 0
Помогите с запросом
    #32378990
cid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Киев
2 fedd
Ну описание таблицы такое:

CREATE TABLE Katalog_PropValue(
katalog_id INTEGER NOT NULL,
propv_id INTEGER NOT NULL,
PRIMARY KEY (katalog_id,propv_id)
)
;

select k.katalog_id,k.kat_name, count(*) as shit
from Katalog_PropValue kp
INNER JOIN Katalog k ON (kp.katalog_id = k.katalog_id)
where kp.propv_id IN (1,2,3,4, 5,14)
group by kp.katalog_id
having shit = 6

Explain таков:
| table | type | possible_keys | key | key_len | ref | rows | Extra |
+--------+--------+---------------+--------+---------+--------+--------+-----
1 строка
| kp | range | PRIMARY,ind_kat_id,ind_kat_pv_id| ind_kat_pv_id| 4 | [NULL] | 11061 | Using where; Using temporary; Using filesort|
2 строка
| k | eq_ref | PRIMARY,ind_katalog_id| PRIMARY| 4 | kp.katalog_id| 1 | |

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


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