![]() |
|
Модераторы: skyboy |
![]()
|
|
| AnemoN |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 16.4.2008 Репутация: нет Всего: нет |
Есть две таблицы names и names_used
names nid name --- --- 1 vasya 2 kolya 3 petya 4 vanya names_used nid pid --- --- 1 2 3 2 Необходимо составить запрос, который вернет names.nid, names.name, т.о. что не существует names_used.nid = names.nid или существует, но names_used.pid!=x |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 2 Всего: 54 |
ПисАл на коленке, возможно будут ошибки.
Это сообщение отредактировал(а) Gluttton - 10.12.2009, 14:30 -------------------- Слава Україні! |
|||
|
||||
| AnemoN |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 16.4.2008 Репутация: нет Всего: нет |
Большое вам спасибо, код идеально работает
|
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
так что ли:
Это сообщение отредактировал(а) DimW - 10.12.2009, 10:57 |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
а подзапрос зачем?
Это сообщение отредактировал(а) Zloxa - 10.12.2009, 10:25 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Gluttton |
|
|||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 2 Всего: 54 |
Zloxa,
Боялся, что не правильно таблицы соединятся (на работу торопился AnemoN, Не за что, только я ошибся и вместо неравенства с переменной поставил критерий на равенство DimW, Так, но захотелось новизны -------------------- Слава Україні! |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
||||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
Зачем???... правильный ведь вариант был. А то что оптимизатор еще не способен нормальный план для такого выражения составить - то ж косяки оптимизатора. SQL - декларативный язык. Он выражает мысль(цель) но не методы(средства) ее реализации. за то он мне и люб -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 4 Всего: 44 |
||||
|
||||
| AnemoN |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 16.4.2008 Репутация: нет Всего: нет |
Сейчас проверил оба запроса к бд - результаты неоднозначные. При 65.000 записей в names - ваш запрос быстрее. При 30.000 записей в names - медленнее. Если к запросам добавить ORDER BY rand() - все меняется. Сейчас сижу и думаю где, что и как в конфиге сервера подкрутить, чтобы этот запрос быстрее выполнялся, т.к. из-за него скорость работы программы упала в 2-3 раза |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
Да, поиск по невхождению да неравенству - емок ;) При проектировании таких поисков лучше б избегать. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
А какие индексы на таблицах? а какие индексы используются? лучше бы вместо абстрактного быстрее/медленнее дал бы планы запросов. И полные структуры таблиц. Тогда это было бы показательно. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
Akina, какие индексы могут быть использованы при отборе по неравенству?
Разве что джойн...... Но джойн по индексу тоже не выгодным должен быть, потому как мы полностью сканируем обе таблицы, а так еще и индекс придется полностью сканировать. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
А где тут отбор по неравенству? и что потребует сканирования таблицы?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Gluttton |
|
||||
![]() Начинающий ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1170 Регистрация: 28.8.2008 Где: Феодосия Репутация: 2 Всего: 54 |
Я свой запрос уже подправил -------------------- Слава Україні! |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |