выберите запрос с несколькими таблицами в SQL Server - PullRequest
2 голосов
/ 16 апреля 2011

Эй, ребята, у меня есть 3 таблицы в моей базе данных сервера sql. 1. crossarticle_article имеет поле: название 2. blogs_entries имеет поле: название 3. forums_posts. имеет поле: тема

Теперь я хочу выполнить поиск на моем веб-сайте, когда пользователь вводит любое ключевое слово в поле поиска и нажимает кнопку, он должен искать заголовок во всех этих таблицах и возвращать один набор результатов.

Как я могу добиться этого, я использую SQL Server 2008

Ответы [ 3 ]

1 голос
/ 16 апреля 2011

A UNION выдаст уникальные результаты, а UNION ALL вернет все, включая дубликаты.

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 голос
/ 16 апреля 2011

Что-то вроде:

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 голосов
/ 16 апреля 2011
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
...