如何在SQL中显示3个表的某些列?

如何在SQL中显示3个表的某些列?,sql,sqlite,Sql,Sqlite,我有3个表:Prestam、Book、User 表Prestam 普雷斯塔姆酒店 日期 日期/发展 Id_Book'链接 Id\u用户链接 表书籍 身份证 头衔 表用户 Id\u用户 名字 姓 以下是我的SQL代码,尽管语法中有一个错误,特别是: , Pr.Id_User = User.Id_User 目标是向我展示以下内容: 普雷斯塔姆酒店 日期 日期/发展 头衔 名字 姓 有什么办法可以做到这一点吗 我听说过创建视图,但我不知道如何处理它 CREATE VIEW List AS 要

我有3个表:
Prestam、Book、User

Prestam

  • 普雷斯塔姆酒店
  • 日期
  • 日期/发展
  • Id_Book'链接
  • Id\u用户链接
  • 书籍

  • 身份证
  • 头衔
  • 用户

  • Id\u用户
  • 名字
  • 以下是我的SQL代码,尽管语法中有一个错误,特别是:

    , Pr.Id_User = User.Id_User
    

    目标是向我展示以下内容:

    • 普雷斯塔姆酒店
    • 日期
    • 日期/发展
    • 头衔
    • 名字
    有什么办法可以做到这一点吗

    我听说过创建视图,但我不知道如何处理它

    CREATE VIEW List AS
    

    要解决该特定语法错误,由于您已为
    User
    表提供了
    Usr
    的别名,因此需要更改此项:

    ,Pr.Id\u User=User.Id\u User

    为此:

    ,Pr.Id\u User=Usr.Id\u User


    然后,您需要了解如何使用
    JOIN
    语句将表连接在一起。
    WHERE
    语句不允许您将表连接在一起。

    要解决该特定语法错误,因为您已为
    用户
    表提供了
    Usr
    的别名,您需要更改此项:

    ,Pr.Id\u User=User.Id\u User

    为此:

    ,Pr.Id\u User=Usr.Id\u User


    然后,您需要了解如何使用
    JOIN
    语句将表连接在一起。
    WHERE
    语句不允许您将表联接在一起。

    看起来您可以对表进行某种联接

    i、 e


    看起来您可以在表上进行某种连接

    i、 e


    您的SQL代码中有一个输入错误。 在查询的这一部分中,您指的是
    用户
    表别名:

    , Pr.Id_User = User.Id_User
    
    但该别名不存在,取而代之的是
    Usr

    总之,您应该使用
    JOIN
    s,而不是在
    WHERE
    子句中填充您的关系

    下面是一个新的查询:

    SELECT 
        Pr.Id_Prestam,
        Pr.Date_Prest,
        Pr.Date_Dev,
        Lbr.Title,
        Usr.Name,
        Usr.Last Name 
    FROM Prestam Pr
    INNER JOIN Book Lbr on Pr.Id_Book = Lbr.Id_Book
    INNER JOIn User Usr on Pr.Id_User = Usr.Id_User
    

    SQL代码中有一个错误。 在查询的这一部分中,您指的是
    用户
    表别名:

    , Pr.Id_User = User.Id_User
    
    但该别名不存在,取而代之的是
    Usr

    总之,您应该使用
    JOIN
    s,而不是在
    WHERE
    子句中填充您的关系

    下面是一个新的查询:

    SELECT 
        Pr.Id_Prestam,
        Pr.Date_Prest,
        Pr.Date_Dev,
        Lbr.Title,
        Usr.Name,
        Usr.Last Name 
    FROM Prestam Pr
    INNER JOIN Book Lbr on Pr.Id_Book = Lbr.Id_Book
    INNER JOIn User Usr on Pr.Id_User = Usr.Id_User
    

    将Prestam与其他两个表连接:

    SELECT 
    Prestam.Id_Prestam, Prestam.Date_Prest, Prestam.Date_Dev, 
    Book.Title, 
    User.Name, User.`Last Name`
    FROM 
        (Prestam INNER JOIN Book ON Prestam.Id_Book = Book.Id_Book) 
            INNER JOIN User 
            ON Prestam.Id_User = User.Id_User;
    

    将Prestam与其他两个表连接:

    SELECT 
    Prestam.Id_Prestam, Prestam.Date_Prest, Prestam.Date_Dev, 
    Book.Title, 
    User.Name, User.`Last Name`
    FROM 
        (Prestam INNER JOIN Book ON Prestam.Id_Book = Book.Id_Book) 
            INNER JOIN User 
            ON Prestam.Id_User = User.Id_User;
    
    解决方案-->将昏迷更改为和

    SELECT 
        Pr.Id_Prestam, Pr.Date_Prest, Pr.Date_Dev,
        Lbr.Title,
        Usr.Name, Usr.Last Name 
    FROM 
        Prestam Pr, Book Lbr, User Usr 
    WHERE 
        Pr.Id_Book = Lbr.Id_Book AND Pr.Id_User = Usr.Id_User
    
    解决方案-->将昏迷更改为和

    SELECT 
        Pr.Id_Prestam, Pr.Date_Prest, Pr.Date_Dev,
        Lbr.Title,
        Usr.Name, Usr.Last Name 
    FROM 
        Prestam Pr, Book Lbr, User Usr 
    WHERE 
        Pr.Id_Book = Lbr.Id_Book AND Pr.Id_User = Usr.Id_User
    


    -在ANSI-92 SQL标准中(超过25年前),旧样式的逗号分隔表列表样式已被正确的ANSI
    JOIN
    语法所取代,因此不鼓励使用它。这是用于哪些RDBMS?请添加一个标记,以指定您使用的是
    mysql
    postgresql
    sql server
    oracle
    还是
    db2
    ——或者完全是其他什么。-在ANSI-92 SQL标准中(超过25年前),旧样式的逗号分隔表列表样式已被正确的ANSI
    JOIN
    语法所取代,因此不鼓励使用它。这是用于哪些RDBMS?请添加一个标记来指定您使用的是
    mysql
    postgresql
    sql server
    oracle
    还是
    db2
    ——或者其他完全不同的东西。但是,
    从Prestam Pr、Book Lbr、User Usr
    ,我没有包含在代码中?没有,没有像我显示的那样包含在连接中。这也可能取决于您使用的RDBMS。我使用MS sql Server我使用的是SQLite数据库浏览器,我收到语法错误,但是,
    来自Prestam Pr、Book Lbr、User Usr
    ,我没有包含在代码中?没有,没有像我显示的那样包含在连接中。这也可能取决于您使用的RDBMS。我使用MS sql Server我使用的是SQLite数据库浏览器,我遇到语法错误我使用的是SQLite数据库浏览器,我遇到语法错误你遇到了哪个错误?当他们应该使用此表单时,在查询
    JOIn User Usr on Pr.Id\u User=Usr.Id\u User
    中缺少运算符,是的,你至少应该解释一下最初的问题是什么。@Clockwork缪斯:重点是,我在我的回答中添加了对原始问题的解释我正在使用SQLite数据库浏览器,我得到了语法错误您得到了哪个错误?当他们应该使用此表单时,查询
    在Pr.Id\u User=Usr.Id\u User上加入用户Usr
    中缺少运算符,是的,你至少应该解释一下最初的问题是什么。@Clockwork Muse:重点是,我在回答中添加了对最初问题的解释。我使用SQLite数据库浏览器,出现语法错误。我使用SQLite数据库浏览器,出现语法错误。OK,更正,我使用SQLite数据库浏览器,出现语法错误OK,更正,我正在使用SQLite数据库浏览器,出现语法错误