|
|
|
Выбрать все, кроме [значение X равно значению Y]
|
|||
|---|---|---|---|
|
#18+
Нужно выбрать все значения X, кроме тех, которые равны значению Y в другой таблице . Запрос формирую так: Код: sql 1. 2. 3. Использую "не равно" Код: sql 1. но не получаю требуемый результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 02:23:17 |
|
||
|
Выбрать все, кроме [значение X равно значению Y]
|
|||
|---|---|---|---|
|
#18+
smarton, есть два варианта: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. или так называемый анти-жоинт Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 03:39:05 |
|
||
|
Выбрать все, кроме [значение X равно значению Y]
|
|||
|---|---|---|---|
|
#18+
javajdbc, спасибо, два варианта отлично работают. Теперь буду знать, как делать подобный запрос. Почитаю еще инструкции, чтобы лучше понимать принцип работы NOT EXISTS и LEFT JOIN. Какой из вариантов правильнее использовать, какой дает меньше нагрузку или оба хороши? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 19:08:17 |
|
||
|
Выбрать все, кроме [значение X равно значению Y]
|
|||
|---|---|---|---|
|
#18+
smartonjavajdbc, спасибо, два варианта отлично работают. Теперь буду знать, как делать подобный запрос. Почитаю еще инструкции, чтобы лучше понимать принцип работы NOT EXISTS и LEFT JOIN. Какой из вариантов правильнее использовать, какой дает меньше нагрузку или оба хороши? нот езист -- понятнее, анти-хоинт -- как бы елегантнее. В простейшем случае анти-жоинт будет делать тоже самое что и нот-екзистс --- тупо перебирать записи одну-за-одной и проверять наличие. Возможно, при каких-нибудь условиях, анти-жоинт решит использовать какие-нибудь более сложные (чем перебор) способы жоинта. Будет ли быстрее -- не знаю. В практическом плане -- чем гадать -- лучше протестировать оба варината на конкретных данных на конкретном железе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 22:35:12 |
|
||
|
Выбрать все, кроме [значение X равно значению Y]
|
|||
|---|---|---|---|
|
#18+
javajdbc, маленькое замечание: NOT EXISTS ищет одну совпадающую запись, LEFT JOIN -все совпадающие. Всех может быть слишком много, соответственно выполняться будет изрядно дольше, т.к. фильтр применяется уже после отбора строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 23:14:37 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=167&tid=1834418]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 291ms |

| 0 / 0 |
