![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
AND и WHERE в JOIN
LDV © (2012-12-21 11:05:00)Есть 2 запроса, в результате которых выводятся дубликаты в таблице item по полю name:
SELECT name dup_name, COUNT(*) AS dup_count INTO memory\temp FROM item GROUP BY name;
SELECT name FROM item JOIN memory\temp ON name <> '' AND name = dup_name WHEREdup_count > 1 ORDER BY name;
Если во 2-м запросе WHERE заменить на AND будет тоже самое?
SELECT name FROM item JOIN memory\temp ON name <> '' AND name = dup_name ANDdup_count > 1 ORDER BY name;
Ega23 (2012-12-21 17:27:00) [1]Хм... Действительно не канает.
MsGuns (2012-12-21 16:49:00) [2]>Ega23 © (21.12.12 13:27) [6]
>Пример в студию.
Акцесс точно, Interbase на 90%, MSSQL до какой-то версии.
Хватит ?
Кщд (2012-12-21 16:32:00) [3]>LDV (21.12.12 11:48) [2]
в случае с inner join условие можно перенести из where в join
а вообще, в join - условия объединения, а в where - условия фильтрации
Игорь Шевченко (2012-12-21 14:14:00) [4]
> Пример в студию.
http://www.osmosislatina.com/oracle/part1_3.htm
http://stackoverflow.com/questions/268429/group-by-alias-oracle
лень документацию искать
Ega23 (2012-12-21 13:27:00) [5]
> Алиасы не всегда можно использовать как аргументы.
Пример в студию.
MsGuns (2012-12-21 13:08:00) [6]>Ega23 © (21.12.12 11:37) [1]
Алиасы не всегда можно использовать как аргументы.
ИМХО, Надежнее так:
select name, count(*) as cnt
from item
group by name
having count(*) > 1
По сабжу: А просто сравнить результаты не пробовал ?
знайка (2012-12-21 12:04:00) [7]И так и так плохо.
А вообще зависит и от того какие соединения и какие условия.
Ega23 (2012-12-21 12:03:00) [8]
> а будут ли различия если заменить WHERE на AND
Запусти и посмотри, в чём проблема?
LDV (2012-12-21 11:48:00) [9]
> Ega23 ©
Вопрос не в том, какой запрос лучше написать, а будут ли различия если заменить WHERE на AND. Просто хочу разобраться.
Ega23 (2012-12-21 11:37:00) [10]select name, count(*) as cnt
from item
group by name
having(cnt) > 1