![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Killer_13 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
Здравств, стараюсь понять что да как.
Конкретики приводить не буду, может кто просто наведет на мысль, буду благодарен. Значит есть две таблички в одной 2 номера, нужно проверить если в другой табличке есть такие номера, то не выводить ничего, если нету то вывести этот номер. ТОлько пож у кого есть желание подсказать - без кода! Мне нужно самому проникнуться раз и навсегда. Пасиб. |
|||
|
||||
sitsalavat |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 2.10.2011 Где: Kazan Репутация: нет Всего: нет |
делаешь выборку этого номера по первой таблице, в условии указываешь, что этого номера нет в другой таблице.
получается, если есть - то условию не удовлетворяет и не выберет, в противоположном случае - ваша задача выполнена) |
|||
|
||||
boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
чуть конкретнее, то outer join по номеру и условие: вторая_таблица.номер is null.
В итоге получится выборка всех номеров из первой таблицы, которых нет во второй. -------------------- Никогда не говори никогда |
|||
|
||||
Killer_13 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
Пасиб, покурю варианты, но наверное уже завтра...
А что вы имеете введу под null если например там только 2 номера, 2 строки, то что третья строка null? Или я вас не правильно понял, или вы меня. |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
boevik, аутер джойн канает как частный случай, когда объединение идет по ключам. Общий случай - семиантиджойн, реализуется через not exists.
Это сообщение отредактировал(а) Zloxa - 5.11.2011, 11:52 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Killer_13 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
УРя, получилось, пасибо вам,
Вот с NOT EXISTS все работает
а с JOIN что-то не получилось... :(
|
||||
|
|||||
tzirechnoy |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 2 Всего: 16 |
С JOIN не работает потому, что нужэн outer join. FROM ....,..... LEFT OUTER JOIN strafen ON strafen.spielernr=teams.spielernr
WHERE strafen.spielernr IS NULL |
|||
|
||||
Killer_13 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 12.1.2008 Где: Germany Репутация: нет Всего: 1 |
Переделаю - пасиб, ошибку понял.
|
|||
|
||||
boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: нет Всего: 35 |
Что значит только по ключам? Можно делать объединение по любым полям (сейчас мы не обсуждаем эффективность выборки). Выборка с применением IN (по другому говоря exists) это частный случай так как ограничивает условие только по одном полю. -------------------- Никогда не говори никогда |
|||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
СУБД-зависимо... скажем, MySQL совершенно спокойно относится к
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Да, был не прав, в отличии от семидожйна, в случае антиджойна, ключи - не решают. ![]()
1) Речь шла о not exists. А not in эквивалентен not exists'у лишь в частном случае, когда антиджойн происходит по non nullable полям. 2) Как уже верно заметил Akina, ограничение условия по одному полю в not in - частный случай платформенного ограничения. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |