如何在SQL中显示3个表的某些列?
我有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 要
Prestam、Book、User
表Prestam
, 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年前),旧样式的逗号分隔表列表样式已被正确的ANSIJOIN
语法所取代,因此不鼓励使用它。这是用于哪些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数据库浏览器,出现语法错误