Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо