4

mMySQL に 2 つのテーブルがあります。

 - news (news_id, news_titel, news_file_id)
 - files (file_id, file_path, file_name)

これらの列で MySQL VIEW を作成したいと思います。

- news_view (news_id, news_title, news_file_id, news_file_path)

しかし、もしそうならnews_file_id > 0、私はファイルのパスを取得します ( file_path + file_name) そうnews_file_pathでなければ0

このビューを行うにはどうすればよいですか?

編集

しかし、さらに2つのテーブルを追加したい場合:

categories (category_id, category_name)
users(user_id, user_name)

とテーブルnewsがに変更されました

news (news_id, news_title, news_file_id, news_author_id, news_category_id)

とビューは、指定された投稿のみを表示する必要がありますがnews_author_idnews_category_idnews_file_pathの質問のように?

ありがとう、ポール。

4

2 に答える 2

7

以下を試してください:

 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
      );

where必要に応じて条件を追加します。

于 2012-10-21T18:12:20.463 に答える
4

これを試してみてください、CASEあなたの状態に使用できます、

CREATE VIEW myView
AS
SELECT  a.news_id, a.news_title,
        a.news_file_id,
        CASE 
            WHEN news_file_id = 0 THEN 0
            ELSE CONCAT(file_path, file_name)
        END news_file_path
FROM    news a
        LEFT JOIN files b
            ON a.news_file_id = b.file_id
于 2012-10-21T18:11:43.843 に答える