2013-01-21 32 views
1

5行我有這樣enter image description here選擇行和從另一個

三個SQL Server表,我需要選擇categories from LS_categoires where nodeid = 183select only 5 files from LS_files這關係到每個類別選擇

如果我有兩個與node 183相關的類別應該是10 rows 是可能的嗎?

+0

表'LS_Files'如何與'LS_Items_Types'相關?通過哪個鍵?從圖像中看不清楚。 –

+0

與item_id –

+0

相關的標識'R1' - 'R5'看起來像是應該是單獨表中的一組行的可疑內容。 –

回答

0

試試這個:

SELECT 
    * 
FROM LS_Categories c 
INNER JOIN 
( 
    SELECT 
    *, ROW_NUMBER() OVER(PARTITION BY catid 
          ORDER BY item_id ASC) rownum 
    FROM LS_ItemTypes 
) l ON c.catid = l.catid 
    AND l.rownum <= 5 
INNER JOIN LS_Files f ON l.item_id = f.id 
where c.nodeid = 183; 

這將選擇每個類別的第一個文件。

+0

我沒有Ls_categories表中的item_id列表 –

+0

@ M.NourBerro對不起,現在修復。試試我更新的答案。 –

+0

好吧它的作品,這是一個很好的表現?? –