powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сравнение нескольких полей
8 сообщений из 8, страница 1 из 1
Сравнение нескольких полей
    #39301434
paharok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем. Возникла такая проблема.
Данных много, так что я просто пример приведу.
Есть таблица user. Там 2 ячейки
user_id и cat_id

Уникального поля нет. Пример данных в таблице

user_id | cat_id
--------------------
1 | 10
1 | 12
2 | 10
2 | 11


Надо получить id юзера у которого cat_id и 10 и 12. Проблема в том что они в разных полях вообще. Не могу ничего придумать.
Оператор IN может вернуть юзера который ИЛИ с cat_id 10 или 12 , А вот чтоб и то и другое.
Помогите кто чем может, пожалуйста.
...
Рейтинг: 0 / 0
Сравнение нескольких полей
    #39301446
3unknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
select user_id 
from t
where cat_id in(10,12) 
group by user_id
having count(distinct cat_id) = 2
...
Рейтинг: 0 / 0
Сравнение нескольких полей
    #39301461
paharok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
3unknown,
Спасибо за помощь. Может ещё какие варианты приходят в голову?
Желательно без having count(distinct cat_id).
...
Рейтинг: 0 / 0
Сравнение нескольких полей
    #39301476
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paharokЖелательно без having count(distinct cat_id).Причина?

paharokМожет ещё какие варианты приходят в голову?2 отдельные выборки по каждому из cat_id, и связать.

paharokУникального поля нет.А пара полей - уникальна?
...
Рейтинг: 0 / 0
Сравнение нескольких полей
    #39301484
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё вариант - приджойнить эту же таблицу
Код: sql
1.
2.
3.
4.
select user_id 
from t as cat10
join t as cat12 using(user_id)
where cat10.cat_id = 10 and cat12.cat_id = 12
...
Рейтинг: 0 / 0
Сравнение нескольких полей
    #39301509
paharok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
1. Неизвестное количество было, но уже переписал и сейчас не имеет значение. Но появилась новая проблема
Надо узнать количество подходящих полей с уникальным user_id

select COUNT (distinct user_id)
from t
where cat_id in(14,69)
group by user_id
having count(distinct cat_id) = 2

Пробую таким запросом, но вообще не работает. Может с этим подскажите? Буду благодарен

2. надо одним запросом.

3.пары полей уникальны
...
Рейтинг: 0 / 0
Сравнение нескольких полей
    #39301519
3unknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
select user_id
from t
group by user_id
having count(user_id)=1
...
Рейтинг: 0 / 0
Сравнение нескольких полей
    #39301525
paharok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем огромное спасибо за помощь. Всё сделал.

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


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