如何编写查询以获取链接到其他表的表的信息,然后链接到其他表并链接到其他表

时间:2018-04-28 12:50:15

标签: sql select

select 
    d.DVD_catalogno, 
    d.DVD_name, 
    r.mb_id as Member_ID, 
    m.mb_fname, 
    m.mb_lname, 
    r.outstandingfee as Outstandingfine, 
    r.rent_date, 
    due_date, 
    r.daysoverdue
from rent r
inner join Member m on r.mb_id = m.mb_id 
inner join DVD d on d.DVD_catalogno = CatalogNo_No.DVD_catalogno 
    and CatalogNo_No.DVD_no = rent_CatalogNo_No.DVD_no 
    and rent_CatalogNo_No.rent_id = rent.rent_id
where r.outstandingfee > 0

我想获取需要通过大量表格的数据,但它显示我的代码有错误从

开始
inner join DVD d on d.DVD_catalogno = CatalogNo_No.DVD_catalogno 
and CatalogNo_No.DVD_no = rent_CatalogNo_No.DVD_no 
and rent_CatalogNo_No.rent_id = rent.rent_id
  

消息4104,级别16,状态1,行31无法绑定多部分标识符“CatalogNo_No.DVD_catalogno”。消息4104,级别16,状态1,行32无法绑定多部分标识符“CatalogNo_No.DVD_no”。消息4104,级别16,状态1,行32无法绑定多部分标识符“rent_CatalogNo_No.DVD_no”。消息4104,级别16,状态1,行33无法绑定多部分标识符“rent_CatalogNo_No.rent_id”。消息4104,级别16,状态1,行33多部分标识符“rent.rent_id”无法绑定。

1 个答案:

答案 0 :(得分:3)

您需要加入四个表中的每个表,甚至是不从中提取任何字段的表。目前,您的查询只有三个表,但查询条件引用了五个。

以下是修复方法 - 将Rent_CatalogNo_NoCatalogNo_No添加到已连接表的列表中,并将条件从上一个ON分发到相应的ON子句添加的表格:

SELECT
    d.DVD_catalogno
,   d.DVD_name
,   r.mb_id as Member_ID
,   m.mb_fname
,   m.mb_lname
,   r.outstandingfee as Outstandingfine
,   r.rent_date
,   r.due_date
,   r.daysoverdue
FROM Rent r
INNER JOIN Member m ON r.mb_id = m.mb_id
INNER JOIN Rent_CatalogNo_No rc ON r.rent_id = rc.rent_id
INNER JOIN CatalogNo_No c ON rc.DVD_no = c.DVD_no
INNER JOIN DVD d on c.DVD_catalogno = d.DVD_catalogno
where r.outstandingfee > 0