如何创建将不同列与不同表合并的视图?例如,我有三个表:用户、项目和礼物(在这个例子中,它是一个用户可以向另一个用户赠送礼物的系统)
users
表包含有关用户的信息,items
表包含有关项目的信息,gifts
表显示哪个用户向哪个用户发送了什么礼物。
我想要的是创建如下视图:
user_from | user_to | gift_name | gift_price
sally | john | Teddy Bear | 10
您必须先加入这三个表。例子
CREATE VIEW GiftsList
AS
SELECT b.name user_from,
c.name user_to,
d.name gift_name,
d.price gift_price
FROM gift a
INNER JOIN users b
ON a.user_from = b.id
INNER JOIN users c
ON a.user_from = c.id
INNER JOIN items d
ON a.item = d.id
您可以创建一个包含两个表的视图,例如:
CREATE VIEW giftList AS
SELECT users.user_from,users.user_to,gifts.gift_name,gifts.gift_price FROM users,gifts
WHERE users.user_id = gifts.user_id;
where 子句是为了确保输出不重复。