2011-04-15 25 views
2

ちょっと、みんな、 私のSQL Serverデータベースには3つのテーブルがあります。 1. crossarticle_articleにはフィールドがあります:タイトル 2. blogs_entriesにはフィールドがあります:タイトル 3. forums_posts。件名:件名:件名:複数のテーブルを持つクエリをSQL Serverで選択する

私は自分のウェブサイトで検索しています。ユーザーが検索ボックスにキーワードを入力してボタンを押すと、これらすべての表のタイトルを検索して、結果セット。

どのように私はこれを達成することができ、私は、SQL Server 2008の

+1

3つのクエリを書くと 'UNION'と組み合わせます。 –

答えて

1

ような何か:

SELECT "article"     AS type 
    , crossarticle_article.id AS id 
    , crossarticle_article.Title AS title_subject 
FROM crossarticle_article 
WHERE Title LIKE "%userinput%" 

UNION ALL 

SELECT "blog entry"    AS type 
    , blogs_entries.id   AS id  
    , blogs_entries.title  AS title_subject 
FROM blogs_entries 
WHERE title LIKE "%userinput%" 

UNION ALL 

SELECT "forum post"    AS type 
    , forums_posts.id   AS id 
    , forums_posts.subject  AS title_subject 
FROM forums_posts 
WHERE subject LIKE "%userinput%" 
0
SELECT Title 
FROM crossarticle_article 
WHERE Title = @Title 

UNION 

SELECT title 
FROM blogs_entries 
WHERE title = @Title 

UNION 

SELECT subject 
FROM forums_posts 
WHERE subject = @Title 
1

UNION ALLは重複を含むすべてのものを返します。一方UNIONは、ユニークな結果が返されますを使用しています。

SELECT Title 
FROM crossarticle_article 
WHERE Title = '%term%' 
UNION 
SELECT Title 
FROM blogs_entries 
WHERE Title = '%term%' 
UNION 
SELECT subject AS Title 
FROM forums_posts 
WHERE Title = '%term%' 
+1

「UNION」と「UNION ALL」の違いを説明してくれてありがとう – Navigatron

関連する問題