用mysql定义视图ExecInf0701,给出每个制片人的姓名、地址,以及制作过的电影的名称、年份
时间: 2023-11-27 10:51:44 浏览: 34
假设我们有以下三个表:
1. `producers` 表,包含制片人的信息,包括 id、name 和 address 字段。
```mysql
CREATE TABLE producers (
id INT PRIMARY KEY,
name VARCHAR(50),
address VARCHAR(100)
);
```
2. `movies` 表,包含电影的信息,包括 id、name 和 year 字段。
```mysql
CREATE TABLE movies (
id INT PRIMARY KEY,
name VARCHAR(50),
year INT
);
```
3. `producer_movie` 表,用于记录制片人和电影之间的关系,包括 producer_id 和 movie_id 字段。
```mysql
CREATE TABLE producer_movie (
producer_id INT,
movie_id INT,
PRIMARY KEY (producer_id, movie_id),
FOREIGN KEY (producer_id) REFERENCES producers(id),
FOREIGN KEY (movie_id) REFERENCES movies(id)
);
```
我们可以使用以下 SQL 语句来定义视图 `ExecInf0701`:
```mysql
CREATE VIEW ExecInf0701 AS
SELECT p.name AS producer_name, p.address, m.name AS movie_name, m.year
FROM producers p
JOIN producer_movie pm ON p.id = pm.producer_id
JOIN movies m ON m.id = pm.movie_id;
```
这个视图将返回每个制片人的姓名、地址,以及制作过的电影的名称、年份。你可以直接查询这个视图来获取结果:
```mysql
SELECT * FROM ExecInf0701;
```