powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Специфичная выборка.
3 сообщений из 3, страница 1 из 1
Специфичная выборка.
    #39771824
Alex-Smm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Гуглил, но безрезультатно.
Все цыфры в int.
есть 2 таблицы с данными работает это все на Mysql 5.7:
t1:
-id —-title
-1 —- загл1
-2 —- загл2
-3 —- загл3
======
t2:
-id —id_t1—-— par1 —------ par2
-1 ——1 —__— 22 ————— 33
-2 ——1 —__— 11 ————— 44
-3 ——2 —__— 22 ————— 33
-4 ——3 —__— 33 ————— 22

В t2 id_t1 - это зависимость от t1 ко многим t2. (т.е. поле id_t1 имеет одинаковые значения).

Делаю запрос следующий через PDO:
SELECT t1.id, title FROM t1 INNER JOIN t2 ON t1.id = t2.id_t1
WHERE t2.par1 IN (22,11) AND t2.par2 IN (33,44);
С FetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC)

Хочу получить ответ: только t1.id = 1
А получаю t1.id = array( 1, 2 );

Как-то можно вообще получить что я хочу при этом не потерять индексы?
Если нет, то хотя бы чтобы работало :)
Спасибо.
...
Рейтинг: 0 / 0
Специфичная выборка.
    #39771880
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex-Smm,

Exists-подзапрос вам в помощь
...
Рейтинг: 0 / 0
Специфичная выборка.
    #39771992
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я верно понимаю суть происходящего, то
Код: sql
1.
2.
3.
4.
5.
SELECT t1.id, title
FROM t1 INNER JOIN t2 ON t1.id = t2.id_t1
WHERE (t2.par1, t2.par2) IN ((22,33), (11,44))
GROUP BY t1.id, title
HAVING COUNT(DISTINCT t2.par1, t2.par2) = 2
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Специфичная выборка.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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