Oracle中如何关联两表仅在SELECT语句中修改输出而不更新表
Oracle 查询:关联表转换输出结果
表结构
tbl_genres
| 字段 | 类型 |
|---|---|
genre_id | 数值型 |
genre_name | 字符型 |
tbl_movies
| 字段 | 类型 |
|---|---|
movie_id | 数值型 |
movie_name | 字符型 |
genre_id | 数值型 |
release_year | 数值型 |
需求目标
无需修改tbl_movies的数据,仅通过SELECT语句将输出结果中的genre_id替换为对应的genre_name,最终输出包含movie_id、movie_name、genre_name、release_year的结果集。
解决方案
使用内连接关联两张表,直接在查询中映射类型名称:
SELECT m.movie_id, m.movie_name, g.genre_name, m.release_year FROM tbl_movies m INNER JOIN tbl_genres g ON m.genre_id = g.genre_id;
如果存在电影未关联任何类型(genre_id为空或无匹配),想要保留这些记录,可改用左连接并通过NVL处理空值:
SELECT m.movie_id, m.movie_name, NVL(g.genre_name, '无分类') AS genre_name, m.release_year FROM tbl_movies m LEFT JOIN tbl_genres g ON m.genre_id = g.genre_id;
内容的提问来源于stack exchange,提问作者Suffii
相关产品推荐
相关产品推荐

