我想投射pid所有具有相同標題的產品的索引,因爲我將以下內容用作子查詢。sql GROUP HAVING選擇
產品(PID,標題)
SELECT p.title
FROM product p
group by title
HAVING (COUNT(p.title) > 1)
這個輸出重複的標題很好,但我怎麼投射PID的呢?
我想投射pid所有具有相同標題的產品的索引,因爲我將以下內容用作子查詢。sql GROUP HAVING選擇
產品(PID,標題)
SELECT p.title
FROM product p
group by title
HAVING (COUNT(p.title) > 1)
這個輸出重複的標題很好,但我怎麼投射PID的呢?
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工作的例子:
我認爲自聯接是在這種情況下,最簡單的答案。請注意,我們是如何針對不同的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)
如果我在p1.pid之前加入'distinct',它會返回與@ Bassam-mehanni的答案相同的數字 – AlasdairC 2012-02-08 21:17:03
對不起,這將返回38000分的記錄,只有51分貝重複的標題。 – AlasdairC 2012-02-08 20:53:26
@AlasdairC您的sup查詢返回多少個標題?還有,你在我的查詢中改變了什麼? – 2012-02-08 20:55:13
以爲我沒有,但在第二次看,它完全確實返回正確數量的結果,每個標題出現不止一次,這正是我需要,謝謝。 – AlasdairC 2012-02-08 21:13:56