Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server尝试从外键表检索名称失败_Sql_Sql Server_Left Join - Fatal编程技术网

SQL Server尝试从外键表检索名称失败

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

我必须为一家书店设计一个数据库,并构建了一个名为“Reviews”的表,该表引用了属于Customer表和book表的外键。我的问题是,我似乎无法生成join命令,该命令将显示当前有评论的所有书籍名称的结果

    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,是的,我很难理解引用的内容和方式,但你说的话澄清了一切。可能的重复