2012-12-08 81 views
-1

我在SQL Server中4個表2008數據庫與下面的模式搜索多個表和生產單可分頁混合的ResultSet

Tutorials (TutorialID, Title, Approved, AddedDate) 
Albums (AlbumID, Title, Approved, AddedDate) 
Profiles (ProfileID, Title, Approved, AddedDate) 
Polls  (PollID, Title, Approved, AddedDate) 

我想提供搜索功能,將搜索所有這些表,並會生成一個分頁結果設置顯示所有表的混合數據。

+0

我有一個網站,其中包含教程,相冊,配置文件和民意調查,我想提供搜索工具,使用LIKE運算符檢查所有這些列中的標題列,並顯示帶分頁的搜索結果。 – Waqas

回答

1

你可能需要一個聯合視圖:

CREATE VIEW MixedData(Type, ID, Title, Approved, AddedDate) AS 
    SELECT 'Tutorial' AS Type, TutorialID AS ID, Title, Approved, AddedDate 
    UNION ALL 
    SELECT 'Album' AS Type, AlbumID AS ID, Title, Approved, AddedDate 
    UNION ALL 
    SELECT 'Profile' AS Type, ProfileID AS ID, Title, Approved, AddedDate 
    UNION ALL 
    SELECT 'Poll'  AS Type, PollID  AS ID, Title, Approved, AddedDate 

然後你就可以將你想要的標準,從MixedData選擇。 'AS Type'和'AS ID'條款並非嚴格必要。

+0

上述解決方案的問題是,如果我使用上述視圖顯示搜索結果,它將首先顯示所有教程,然後是專輯,然後是配置文件,並在最終民意調查中顯示,如果我正在進行分頁,那麼前100+頁將只顯示教程,直到他們完成和專輯開始。 – Waqas

+0

所以你需要做一些更聰明的事情,但你必須明確指定你想要的順序。 –