Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2014, 19:28   #11
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Я побоялся писать number, поскольку это слово -- ключевое во многих диалектах SQL.

Вывод из БД говорит о том, что ни одного совпадения нет, выводятся только значения из псевдотаблицы.
Vapaamies вне форума Ответить с цитированием
Старый 28.10.2014, 19:35   #12
Seregakz
Пользователь
 
Регистрация: 21.05.2008
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
id или number?

Код:
SELECT a.number, sssd.number
  FROM sssd
RIGHT JOIN (

SELECT 111 number
UNION ALL 
SELECT 222 
UNION ALL 
SELECT 333
)a ON sssd.number = a.number
number) спасибо всё работает! вопрос, в бд 1кк данных!
SELECT 222
SELECT 333
SELECT NNN
Динамически может расти до 50 значений
как скажется это на нагрузке?

Последний раз редактировалось Seregakz; 28.10.2014 в 19:38.
Seregakz вне форума Ответить с цитированием
Старый 28.10.2014, 19:40   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Запрос не хороший, по идее долгоиграющий. Смотри план выполнения
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.10.2014, 19:51   #14
Seregakz
Пользователь
 
Регистрация: 21.05.2008
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Запрос не хороший, по идее долгоиграющий. Смотри план выполнения
угу) к сожалению время выполнение огроменое на рабочей бд
Seregakz вне форума Ответить с цитированием
Старый 28.10.2014, 20:00   #15
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

По Number индекс есть в основной таблице? Сделай если нет и сравни время
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.10.2014, 20:10   #16
Seregakz
Пользователь
 
Регистрация: 21.05.2008
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
По Number индекс есть в основной таблице? Сделай если нет и сравни время
Практически нет разницы.
Seregakz вне форума Ответить с цитированием
Старый 28.10.2014, 20:17   #17
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

СУБД какая?
Vapaamies вне форума Ответить с цитированием
Старый 28.10.2014, 20:41   #18
Seregakz
Пользователь
 
Регистрация: 21.05.2008
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
СУБД какая?
mysql ....


Щас хочу кое как престроить! есть ли возможность при SELECT * FROM `sssd` WHERE number IN ('111', '222', '333')
Вывести LIMIT 1 один результат совпадения с 111 с 222 с 333
Аналогично добавке Group by number!?

Последний раз редактировалось Seregakz; 28.10.2014 в 21:05.
Seregakz вне форума Ответить с цитированием
Старый 29.10.2014, 08:52   #19
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Наверно нужно к истокам такого запроса вернуться. Откуда берется список этих номеров? Могу предположить, что запросом из других таблиц по какому-то условию. Если так, то почему бы не объединить тот запрос с этой выборкой и не мучаться? Да и вообще использование in чревато, оно почти что OR во where, другими словами запрос выполняется столько раз, сколько элементов в перечне in. Почти. Фокусы с LIMIT не пройдут
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 29.10.2014 в 08:56.
Аватар вне форума Ответить с цитированием
Старый 29.10.2014, 11:53   #20
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
почему бы не объединить тот запрос с этой выборкой и не мучаться? Да и вообще использование in чревато, оно почти что OR во where, другими словами запрос выполняется столько раз, сколько элементов в перечне in. Почти. Фокусы с LIMIT не пройдут
Полностью поддерживаю!
Vapaamies вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MS SQL ADO Как вывести через запрос Select из двух баз данных по совпадающему id? SovereignSun SQL, базы данных 2 17.01.2012 17:59
sql запрос select Olegka_ БД в Delphi 11 27.03.2011 16:55
ADO-MS SQL Не выполняется запрос SELECT Dj_SheLL Помощь студентам 10 23.11.2010 14:17
SELECT синтаксис) (SQL) k_a_m_a_z Помощь студентам 4 14.06.2010 15:34
SELECT SQL vmilyoshin Помощь студентам 1 20.02.2010 09:41