powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите разобраться с вложенным SELECT`ом
5 сообщений из 5, страница 1 из 1
Помогите разобраться с вложенным SELECT`ом
    #39037698
KOV85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть три таблицы(не связанных друг с другом) и запрос к ним:

SELECT * FROM table1 WHERE table1.id IN
(
SELECT subItemID FROM table2 WHERE table2.itemID =
(
SELECT id FROM table3 WHERE table3.col1 = 89596846
)
);

таблица 3:
idcol17441489596846

таблица 2:
iditemIDsubItemIDsubItemIndex 393053744143930530 393054744143930541 393055744143930552 393056744143930563 393057744143930534

т.е. в таблице 2 при одинаковом itemID некоторые значения поля subItemID будут повторяться(в примере 0-ай и 4-ай запись).

Если ограничится вложенными запросами:

SELECT subItemID FROM table2 WHERE table2.itemID =
(
SELECT id FROM table3 WHERE table3.col1 = 89596846
)

то все корректно работает,- выводятся все 5-ть записей.

А вот внешний запрос "SELECT * FROM table1 WHERE table1.id IN" отбрасываем повторяющиеся записи. Выводит всего 4 штуки.

Вопрос: как добиться вывода внешним запросом все записей(как уникальных так и повторяющихся) сортированных по полю subItemIndex второй таблицы
...
Рейтинг: 0 / 0
Помогите разобраться с вложенным SELECT`ом
    #39037793
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем тут WHERE ... IN, когда вроде бы можно обойтись вульгарным
Код: sql
1.
2.
3.
4.
5.
SELECT table1.* 
FROM table1, table2, table3
WHERE table1.table1.id = table2.subItemID 
AND table2.itemID = table3.ID
AND table3.col1 = 89596846
...
Рейтинг: 0 / 0
Помогите разобраться с вложенным SELECT`ом
    #39037823
KOV85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Обойтись действительно можно.
А вообще? существует какая-то возможность отключить(обойти) эту оптимизацию при использовании WHERE... IN (SELECT.....) в мускуле?
...
Рейтинг: 0 / 0
Помогите разобраться с вложенным SELECT`ом
    #39037841
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где ты тут нашёл "оптимизацию"? Если составленный тобой запрос НЕ соответствует требующейся тебе логике, то виноват именно ты, а не мнимая "оптимизация".

KOV85Если ограничится вложенными запросами:
Код: sql
1.
2.
3.
4.
SELECT subItemID FROM table2 WHERE table2.itemID = 
  (
    SELECT id FROM table3 WHERE table3.col1 = 89596846
  )

то все корректно работает,- выводятся все 5-ть записей.
Угу. Или, если быть точным, то

subItemID 393053393054393055393056393053

KOV85А вот внешний запрос "SELECT * FROM table1 WHERE table1.id IN" отбрасываем повторяющиеся записи. Выводит всего 4 штуки.
Ну то есть
Код: sql
1.
2.
3.
SELECT * 
FROM table1 
WHERE table1.id IN (393053,393054,393055,393056,393053)


И ты что, правда думаешь, что такой заппрос даст ПЯТЬ записей?
...
Рейтинг: 0 / 0
Помогите разобраться с вложенным SELECT`ом
    #39037929
KOV85
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Убедил! Спасибо за помощь, еще раз
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите разобраться с вложенным SELECT`ом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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