Решите задачку запросом | |
---|---|
bcook Автор Сообщений: 160 Дата регистрации: 12.04.2011 |
Здравствуйте!
Вот след. задачка. Имеется некая таблица, вот ее структура: поле id_k - идентификатор некой корзины для фруктов поле id_fruit - идентификатор некоего фрукта, который лежит в соответствующей корзине. Таблица заполнена сл. образом id_k id_fruit 1 100 1 110 1 120 2 110 2 200 3 110 3 200 3 100 Задача. Возможно ли одним запросом выбрать в каких корзинах вместе лежат фрукты с id_fruit 100 и 110 З.Ы. В качестве результата ожидаются id_k = 1 и 3 |
Re: Решите задачку запросом | |
---|---|
pasha_usue Сообщений: 3650 Откуда: Е-бург Дата регистрации: 06.10.2006 |
На этих исходных данных, возможно. Если на других данных есть дублирующиеся кортежи, их надо выкинуть подзапросом.
PS. Сейчас в тему придет Игорь и скажет, что INLIST не оптимизируется по индексу. И надо использовать SQL-ный IN (...) Исправлено 1 раз(а). Последнее : pasha_usue, 18.09.15 06:58 |
Re: Решите задачку запросом | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Необязательно подзапросом. Вполне сгодится в твоём варианте заменить having на
INLIST вполне себе оптимизируется индексом. Но в целом работает чуть по другому нежели IN (изменение в 9-ке было сделано). И как раз если индекса нет (т.е. само условие не оптимизируемо), то мануал советует использовать IN - он чуть эффективнее работает если "список проверки" упорядочить, поставив в начало самые часто встречающиеся элементы. ------------------ WBR, Igor |
Re: Решите задачку запросом | |
---|---|
pasha_usue Сообщений: 3650 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Вот, о чем я и говорил. Пришел Игорь и все поправил (;Ж
|
© 2000-2024 Fox Club  |