SQL Server尝试从外键表检索名称失败
我必须为一家书店设计一个数据库,并构建了一个名为“Reviews”的表,该表引用了属于Customer表和book表的外键。我的问题是,我似乎无法生成join命令,该命令将显示当前有评论的所有书籍名称的结果SQL Server尝试从外键表检索名称失败,sql,sql-server,left-join,Sql,Sql Server,Left Join,我必须为一家书店设计一个数据库,并构建了一个名为“Reviews”的表,该表引用了属于Customer表和book表的外键。我的问题是,我似乎无法生成join命令,该命令将显示当前有评论的所有书籍名称的结果 create database Bookorama use Bookorama --Book table create table Book ( bookID int identity(1,1), bookName varch
create database Bookorama
use Bookorama
--Book table
create table Book
(
bookID int identity(1,1),
bookName varchar(50) unique,
price smallmoney,
primary key (bookID)
);
--Customer table
create table Customer
(
custID int not null identity (1,1),
cName varchar(50),
cemid varchar(50),
primary key (custID)
);
-- Order table
create table Ordertable
(
orderID int identity(1,1),
custID int not null,
bookID int not null,
primary key (orderID),
foreign key (custid) references Customer(custid),
foreign key (bookID) references Book(bookid)
);
create table Reviews
(
reviewID int identity (1,1) not null,
custID int not null,
bookID int not null,
review varchar(50),
primary key (reviewID),
foreign key (custID) references Customer(custID),
foreign key (bookID) references Book(bookID)
)
当我尝试显示当前有评论的书籍的名称时:
select Book.bookName from Book
left outer join Book as BookswithReviews
on (Book.bookID = Reviews.bookID);
以下代码给出了以下错误:
无法绑定多部分标识符“Reviews.bookID”
我刚刚开始使用SQL,请原谅我的无能,但我找到的每种解决方案都会给出相同的结果。您需要在From/Join子句中包含BookReview表:
select Book.bookName from Book
inner join Reviews
on (Book.bookID = Reviews.bookID);
不知道你为什么有“带评论的书”
此外,使用外部联接将为您提供所有书籍,包括和不包括。使用内部联接只提供具有的联接。您需要在From/join子句中包含BookReview表:
select Book.bookName from Book
inner join Reviews
on (Book.bookID = Reviews.bookID);
不知道你为什么有“带评论的书”
此外,使用外部联接将为您提供所有书籍,包括和不包括。使用内部联接只会给那些具有的。非常感谢XD,是的,我很难理解引用的内容和方式,但您所说的澄清了一切。非常感谢XD,是的,我很难理解引用的内容和方式,但你说的话澄清了一切。可能的重复