MySQL创建连接两个表的视图

时间:2012-09-10 12:47:15

标签: mysql join view

如何创建将不同列与不同表合并的视图?我有三个表格,例如:用户,物品和礼物(在这个例子中,它是一个用户可以赠送给另一个用户的系统)

users表包含有关用户的信息,items表包含有关项目的信息,gifts表显示哪些用户向哪个用户发送了什么礼物。

我想要的是创建如下的视图:

user_from | user_to | gift_name  | gift_price
sally     | john    | Teddy Bear | 10

2 个答案:

答案 0 :(得分:18)

您必须先加入三个表格。实施例

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

答案 1 :(得分:0)

您可以使用两个表创建视图:

 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子句用于确保输出不会重复。