2013-09-16 2 views
-1

Мне нужно создать представление с именем «testdisplay», которое отображает категорию автора, статьи и статьи.Создание представления из трех разных таблиц

У меня возникли проблемы с созданием представления, чтобы получить желаемые результаты. Я привел детали приведенных ниже таблиц:

DESCRIBE ArticleAuthors;                  

Field   Type   Null Key  Default  Extra            

AuthorCode  int(11)   NO  PRI  NULL  auto_increment          
FirstName  varchar(100) NO    NULL               
LastName  varchar(100) NO    NULL               
EmailAddress varchar(100) NO    NULL               
Bio_Info  varchar(250) NO    NULL      


DESCRIBE Articles; 
Field    Type   Null Key  Default  Extra   

ArticleCode   int(11)   NO  PRI  NULL  auto_increment 
AuthorCode   int(11)   NO    NULL      
Title    varchar(100) NO  MUL  NULL      
ShortDescription varchar(250) NO  MUL  NULL      
ArticleText   varchar(500) NO  MUL  NULL      
date    date   NO    NULL  


DESCRIBE ArticleCategories; 

Field     Type   Null Key  Default  Extra   

ArticleCategoryCode  int(11)   NO  PRI  NULL  auto_increment 
ArticleCode    int(11)   NO    NULL      
Category    varchar(100) NO    NULL 
+1

http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html – Mihai

+1

И каковы желаемые результаты? Мы ... телепатически добираемся до этого? :) –

ответ

1

Создайте представление, а затем сделайте запросы из представления.

Create View `testdisplay` as 
Select 
a.FirstName author, ar.Title article, c.Category Category 
From 
ArticleAuthors a 
join Articles ar on ar.AuthorCode=a.AuthorCode 
join ArticleCategories c on c.ArticleCode=ar.ArticleCode; 

Пример выбора с точки зрения:

select * from testdisplay where author = "your favorite author"; 
1
CREATE VIEW testdisplay as 
SELECT * FROM Articles art JOIN ArticleAuthors aut 
ON art.AuthorCode=aut.AuthorCode 
JOIN ArticleCategories cat 
ON art.ArticleCode=cat.ArticleCode 

Просто замените * с колонками вам нужно.

Смежные вопросы