【问题标题】:Create view using many tables?使用许多表创建视图?
【发布时间】:2014-01-29 10:38:25
【问题描述】:

我使用这种语法从表中创建视图:

CREATE VIEW view_name AS 
    SELECT column_name(s) FROM table_name WHERE condition

我将从许多依赖的表中创建一个视图。例如我有两个表:

  • 人员:id、first_name、last_name、Age、City_id
  • 城市:id、city_name、zip_code

我尝试这个请求从两个表中创建一个视图 (first_name,last_name,city_name),但它不起作用:

CREATE VIEW view AS 
    SELECT 
        first_name, 
        last_name, 
        (SELECT city_name FROM City where City_id=id ) 
    FROM Person.

有什么问题?

【问题讨论】:

  • 更改视图的名称。您正在使用“视图”,这是一个保留字

标签: mysql sql view


【解决方案1】:

您应该使用连接:

CREATE VIEW person_city AS
    select 
        first_name,
        last_name,
        city_name
     from Person p
     join City c
     on p.city_id = c.city_id

请注意,我已在示例 SQL 中重命名了视图。通常不建议使用 view 等保留字作为 db 对象名称,但如果必须将其命名为 view,则始终可以使用反引号。

【讨论】:

  • 感谢您的帮助 CREATE VIEW person_city AS select first_name, last_name, c.city_name from Person p join City c on p.city_id = c.id
  • @user2944302 很高兴我能帮上忙!如果您还有其他问题,请告诉我。如果这些答案之一解决了您的问题,请点击答案旁边的复选标记接受答案。
【解决方案2】:
CREATE VIEW person_view AS
    SELECT 
        first_name, last_name
    FROM
        Person
            JOIN
        City ON City.id = Person.City_id

【讨论】:

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