Выбрать НЕуникальные значение

Mishanja

Новичок
Выбрать НЕуникальные значение

Добрый вечер!

Можка кто сталкивался:

В таблице (~5000 строк) есть столбец с хэшами.

Как выбрать НЕуникальные хэши (md5), т.е. те, которые в одном столбце встречаются более 1 раза?

Как-то не нашел не по форумам ни в мане, ни в нете.

Заранее благодарю.
 

Vallar_ultra

Любитель выпить :)
через JOIN

просто прикрути таблу ещё раз и проверь нет ли других(с другим уникальным ИД), но с таким же хэшем..... Запрос напишу если дашь поля - фантазировать лень.
 

Mishanja

Новичок
Vallar_ultra

поле
id (уникальный ID с автоинкрементом)
поле name
поле code (md5 хэш код)

-~{}~ 18.12.06 22:32:

не могу догнать как через JOIN сделать
 

Vallar_ultra

Любитель выпить :)
[sql]
SELECT t1.* FROM table1 t1, table1 t2 WHERE t1.hash = t2.hash AND t1.id != t2.id
[/sql]

Это даже без JOIN-ов
 

Vallar_ultra

Любитель выпить :)
2Mishanja
не могу догнать как через JOIN сделать :)))

Ну я сёня явно добрый :) Показываю:
[sql]
SELECT t1 .*
FROM table1 t1 INNER JOIN table1 t2 ON (t2 . hash = t1.hash) WHERE t1 . id !=t2 . id ORDER BY `hash` ASC
[/sql]
 

Vallar_ultra

Любитель выпить :)
2alpine
:)))))) Без дериктивы JOIN :) А во-вторых это шоб не было желания юзать LEFT JOIN -т.к. это увеличивает кол-во обходов внутри БД в n-раз!
 

Vallar_ultra

Любитель выпить :)
посмотри статистику на 10000 записей и сравни с чем быстрее бегать будет: LEFT JOIN или пересечение таблиц.
 

alpine

Новичок
Vallar_ultra
Что ты хочешь чтоб я сравнил? LEFT JOIN с JOIN или "," с INNER JOIN ?
 

alpine

Новичок
Попрошу автора топика сравнить производительность с таким запросом:
[sql]
SELECT hash FROM tbl GROUP BY hash HAVING COUNT(*)>1
[/sql]
 

Vallar_ultra

Любитель выпить :)
2alpine
И ты хочешь сказать что курю я?????????
1-е, я не курю а пью.

2-е, Если надо получить id ВСЕХ не уникальных по hash

3-е GROUP BY + HAVING быстрее чем INNER :)))))) Я плакаль!
 

alpine

Новичок
Vallar_ultra
посмотри статистику на 10000 записей и сравни с чем быстрее бегать будет: LEFT JOIN или пересечение таблиц.
Это бесполезная трата времени, зависит от кол-ва затронутых рядов и индексов.
 

Vallar_ultra

Любитель выпить :)
2Mishanja

Различия между чем и чем ты имеешь ввиду?

-~{}~ 18.12.06 23:16:

Автор оригинала: alpine
Это бесполезная трата времени, зависит от кол-ва затронутых рядов и индексов.
Ну это с одной стороны да, но при равных условиях....... Даже просто в качестве эксперимента.
 

alpine

Новичок
Vallar_ultra
У меня был случай когда работал LEFT JOIN быстрее на ~160 000 записях раза в 1.5
 

Mishanja

Новичок
ну у меня на 5000 записей вариант alpine работает быстрее но не выводит всех id дублирующихся записей (только 1 тот что дублируется), в отличие от первого варианта
 
Сверху