Выбор группы sql - PullRequest
       6

Выбор группы sql

2 голосов
/ 09 февраля 2012

Я хочу проецировать индексы pid для всех продуктов с одинаковым названием, так как я использую следующее в качестве подзапроса.

Продукт ( pid , название)

SELECT p.title
FROM product p
group by title
HAVING ( COUNT(p.title) > 1 )

это нормально выводит дубликаты заголовков, но как вместо этого проецировать pid ?

Ответы [ 2 ]

5 голосов
/ 09 февраля 2012
SELECT p.pid, p.title
FROM product p 
     INNER JOIN 
     (SELECT p.title
      FROM product p
      GROUP BY title
      HAVING (COUNT(p.title) > 1)) t ON t.title = p.title

Вот пример его работы с sqlfiddle:

http://sqlfiddle.com/#!3/25e77/1

1 голос
/ 09 февраля 2012

Я думаю, что самостоятельное объединение - самый простой ответ в этом случае.Обратите внимание, как мы тестируем разные PID, но с одинаковыми названиями:

SELECT p1.pid FROM products p1 JOIN products p2 
              ON p1.pid <> p2.pid AND p1.title = p2.title;

(я тестировал здесь: http://sqlfiddle.com/#!2/c8b8d/18)

...