![]() |
|
Модераторы: skyboy |
![]()
|
|
| godsgame |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
Выбираю записи в таблице1, но нужно выбрать эти записи так, чтобы записи с таким же ИД (поле) не существовало в таблице2.
Можно ли обойтись 1 запросом? пример: таблица1: (ИД, ТЕКСТ) 1, 123 2, 456 3, 799 Таблица2: 1, 123 3, 799 Выбирет ТОЛЬКО 2-ую (2, 456) запись в таблице1. |
|||
|
||||
| Gold Dragon |
|
||||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
по моему так (нет возможность проверить сейчас)
Добавлено @ 23:02 в общем что-то написал какую то ерунду, не работает вот
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
||||
|
|||||
| godsgame |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
Gold Dragon,
спасибо, работает! |
|||
|
||||
| Drache |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 31.3.2006 Репутация: 1 Всего: 3 |
вообще можно так сказать "специально" для таких целей есть left join.
Ну он то может и не сспециально для атких целей, но в таких случаях точно применяется. select * from t1 left join t2 using(id) where t2.id is null |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 21 Всего: 73 |
godsgame, рекомендую воспользоваться советом Drache.
-------------------- Теперь при чем :P |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
Ignat, поясни
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 21 Всего: 73 |
Gold Dragon, твой вариант с подзапросом. Первоначально будут выбраны все записи из т2, при этом они попадут по временную таблицу. Далее будет сравнение каждой записи из т2 с каждой записью из временной таблицы.
В случае с LEFT JOIN нет подзапроса, поля для связывания (как правило) проиндексированы, следовательно будут выбраны только те записи, для которых было сопоставление с ключом NULL. Это значит, что производительность запроса с LEFT JOIN выше. -------------------- Теперь при чем :P |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
Ignat, хочешь сказать, что все подзапросы выполняются намного медленнее? И как сильно загружают?
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 21 Всего: 73 |
Не обязательно на много, но то что медленнее - факт. Ведь это по сути два запроса. Хотя при неправлиьном соединении таблиц можно получить результат плачевнее подзапроса. Загрузка также зависит от объема. -------------------- Теперь при чем :P |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
Ignat, по логике вещей ты может и прав... но если запрос очень сложный, то его намного легче читать, особенно когда уже не помнишь что хотел
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |