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”无法绑定。
答案 0 :(得分:3)
您需要加入四个表中的每个表,甚至是不从中提取任何字段的表。目前,您的查询只有三个表,但查询条件引用了五个。
以下是修复方法 - 将Rent_CatalogNo_No
和CatalogNo_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