【问题标题】:How can I write my query to get information fron a table that link to other table then link to other table and link to other table如何编写查询以从链接到其他表的表中获取信息,然后链接到其他表并链接到其他表
【发布时间】:2018-04-28 21:06:58
【问题描述】:
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”。 Msg 4104, Level 16, State 1, Line 33 无法绑定多部分标识符“rent.rent_id”。

【问题讨论】:

  • 你得到什么错误?
  • Msg 4104, Level 16, State 1, Line 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”。 Msg 4104, Level 16, State 1, Line 33 无法绑定多部分标识符“rent.rent_id”。
  • CatalogNo_No 是您在问题标题中提到的第 4 个表,对吗?
  • 在这个查询中 CatalogNo_No 不存在
  • 也许是的......我认为

标签: sql select


【解决方案1】:

您需要连接到四个表中的每一个,即使是您没有从中提取任何字段的表。目前,您的查询只有三个表,但查询条件引用了五个。

以下是解决方法 - 将 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

【讨论】:

    猜你喜欢
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    相关资源
    最近更新 更多