【问题标题】:MySQL create view joining two tablesMySQL创建视图连接两个表
【发布时间】:2012-09-03 08:10:53
【问题描述】:

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

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

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

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

【问题讨论】:

标签: mysql join view


【解决方案1】:

您必须先连接三个表。示例

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

【讨论】:

  • FROM gift a 更改为FROM gifts a,以为有错字。我得到错误:#1054 - Unknown column 'b.users' in 'on clause'
  • @th0th 确实是错字,应该是a.user_from = b.ida.user_from = c.id
【解决方案2】:

您可以创建一个包含两个表的视图,例如:

 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 子句是为了保证输出不重复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    相关资源
    最近更新 更多