2012-02-24 68 views
-3

我有一個表video_categories(ID,VID_ID,CAT_ID)和我試圖找到兩個視頻輸入與以下這個SQL查詢發現常見條目有什麼問題?

SELECT DISTINCT `cat_id` 
FROM `vid_categories` 
WHERE `vid_id` =1 
IN (
SELECT `cat_id` 
FROM `vid_categories` 
WHERE `vid_id` =2); 

共享類的號碼,我不斷收到一個空集的結果,其中,我相信所選擇的兩個視頻具有共同的類別。

這是MySQL ..任何想法?

+1

這應該報告一個錯誤。 '並在列....' – Vyktor 2012-02-24 20:08:31

+0

請停止標記標題。 – 2012-02-24 20:10:54

回答

-1
SELECT DISTINCT `cat_id` 
FROM `vid_categories` 
WHERE `vid_id` /*=1*/ 
IN (
SELECT `cat_id` 
FROM `vid_categories` 
WHERE `vid_id` =2); 

但是很奇怪的查詢,是vid_id通過cat_id referensed?

請解釋您需要選擇什麼?

+0

爲什麼downvote我? – triclosan 2012-02-24 20:30:24

1
SELECT DISTINCT `cat_id` 
FROM `vid_categories` 
WHERE `vid_id` = 1 AND 
     `cat_id` IN (SELECT `cat_id` 
        FROM `vid_categories` 
        WHERE `vid_id` = 2) 
1
SELECT 
     v1.Cat_ID 
    from 
     Vid_Categories V1 
     JOIN Vid_Categories V2 
      on V2.ID = 2 
      AND V1.Cat_ID = V2.Cat_ID 
    where 
     v1.ID = 1 

從查詢解釋的表現,我不知道這還是Sam的答案將在任何預期的類別的這種小規模有更好的表現...,要麼會被罰款。