带有IF语句的MySQL VIEW

Pab*_*zyk 3 mysql if-statement view

我在mMySQL中有两个表:

 - news (news_id, news_titel, news_file_id)
 - files (file_id, file_path, file_name)
Run Code Online (Sandbox Code Playgroud)

我想用这些列创建MySQL VIEW:

- news_view (news_id, news_title, news_file_id, news_file_path)
Run Code Online (Sandbox Code Playgroud)

但是,如果news_file_id > 0那时,我得到file(file_path + file_name)的路径news_file_path应该是0

我怎么能这个VIEW?

编辑

但是如果我想再添加两个表呢?

categories (category_id, category_name)
users(user_id, user_name)
Run Code Online (Sandbox Code Playgroud)

和表格news改为

news (news_id, news_title, news_file_id, news_author_id, news_category_id)
Run Code Online (Sandbox Code Playgroud)

和观点应该显示specifed只有职位news_author_id,news_category_idnews_file_path像原来的问题?

谢谢,保罗.

Yog*_*ngh 5

试试以下:

 CREATE VIEW news_view  
   as (SELECT news_id, news_titel, news_file_id, 
       IF(news_file_id > 0, CONCAT(file_path, file_name), 0)
           AS news_file_path
       FROM news a LEFT JOIN files b
            ON a.news_file_id= b.file_id
         JOIN categories cat
            ON a.news_category_id = cat.category_id
         JOIN users u
            ON a.news_author_id = u.user_id
      );
Run Code Online (Sandbox Code Playgroud)

where根据需要添加条件.