[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как правильно расделить выбранные записи.
imbalance_hero
Отвечая на один из вопросов столкнулся с такой проблемой:
DELETE FROM `test2`
WHERE `id_gente` IN (
SELECT `id_gente` FROM (
SELECT `id_gente` FROM `test2`
GROUP BY `id_gente`
HAVING COUNT(*) > 1
) AS `t1`
)
AND `id` NOT IN (
SELECT `id` FROM (
SELECT `id` FROM `test2`
GROUP BY `id_gente`
HAVING COUNT(*) > 1
) AS `t2`
)


2 запроса, полностью одинаковых, один возвращает `id`, второй `id_gente`, при этом можно одним запросом достать обе колонки, вопрос в другом, как эти данные разделить, чтобы id_gente пошел в первое условие WHERE, а id во второе, где "AND `id` NOT IN".

Может как-то через переменные...

Пробовал так:

DELETE FROM `test2`
WHERE `id_gente` IN (
SELECT `id_gente` FROM (
SELECT `id_gente`,@ids := `id` FROM `test2`
GROUP BY `id_gente`
HAVING COUNT(*) > 1
) AS `t1`
)
AND `id` NOT IN (
@ids
)

Но в ответ почему-то криво удаляются, удаляются даже те, которые не должны были удалиться! Допустим абсолютно все записи с id_gente = 2 удаляются...
dadli
imbalance_hero
пожалуиста даите таблицу и скажите какои резултат хотите получить, тоест:
ви хотите удалит строки где id_gente повтаряется более 1 раз
но не удалит такие строки где id .......
ето не понял: какие иди хотите не удалит

етот запрос
SELECT `id` FROM `test2`
GROUP BY `id_gente`
HAVING COUNT(*) > 1

не совсе верни (не логично), так как он вазврашает первие иди из строков, которие сгрупированни через id_gente

например из етои таблици:

id | id_gente
34| 4
33| 4
3 | 5
4 | 4
5 | 5


етот запрос возврашает:

34
3


_____________


когда чарли чаплин принимал участие в конкурсе: "клон чарли чаплинов", то чарли занимал третю позицию.

imbalance_hero
dadli
Удаление дублей. Вопрос заключается не в удалении дублей, а в создании переменных, чтоли, чтобы потом вставить в нужном месте.

В итоге останутся записи:
4 / 4
3
/ 5
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.