如何解决' ORA-00918:列模糊定义'

时间:2016-12-08 07:59:08

标签: sql oracle

问题:。对于从" Branch_C"借出的每本书。分支及其DueDate 是在2012年4月2日至13日,检索书名,借款人姓名和借款人 地址。

我的回答::

select TITTLE , NAME, ADDRESS 
    from BOOK B , BORROWER O, BOOK_LOANS L  
    where B.BOOKID= L.BOOKID and L.BRANCHID = 
        (select BRANCHID from LIBRARY_BRANCH where BRANCHNAME='Branch_C')
        and (O.CRADNO=L.CRADNO) and L.DUE_DATE='2013-2-13'  

我有这个错误

  

ORA-00918:列模糊定义

3 个答案:

答案 0 :(得分:2)

你应该定义列属于哪个表

select B.TITTLE , O.NAME, L.ADDRESS 
    from BOOK B , BORROWER O, BOOK_LOANS L  
    where B.BOOKID= L.BOOKID and L.BRANCHID = 
        (select BRANCHID from LIBRARY_BRANCH where BRANCHNAME='Branch_C')
        and (O.CRADNO=L.CRADNO) and L.DUE_DATE='2013-2-13'  

答案 1 :(得分:0)

您在查询中使用的列在多个具有相同名称的表中定义。使用表名前缀字段。

select table_a.ambiguos_name, table_b.ambiguos_name
from table_a inner join table_b on table_a.id = table_b.id

答案 2 :(得分:-1)

“其截止日期为02年4月2日”

好吧,那么日期应该是这样的 L.DUE_DATE = '2013年4月2日'