【问题标题】:Not understanding correlation names on sql joins不了解 sql 连接上的相关名称
【发布时间】:2014-10-28 21:08:54
【问题描述】:

有人可以向我解释如何在此联接中关联这些名称吗?当我执行时,我收到错误消息说 From 子句中的对象具有相同的公开名称

select
inv_mast.item_id as Item,
inv_loc.location_id as location,
company.company_name as company,
vendor_supplier.vendor_id as vendorID
from
inv_loc
join inv_mast on inv_mast.inv_mast_uid = inv_loc.inv_mast_uid 
join inv_loc on company.company_id = inv_loc.company_id 
JOIN company ON (company.company_id = vendor_supplier.company_id) 

【问题讨论】:

  • 您在fromjoin 中使用inv_loc,但您没有给它们任何别名,所以当您说:inv_loc.company_id SQL Server 不知道哪个一个你想要的
  • 你为什么要加入2次inv_loc表?你可以加入1次,有2个条件

标签: sql sql-server database join sql-server-2012


【解决方案1】:

你加入inv_loc 两次 - 你要么需要修复你的加入,要么引入一个别名,比如:

select      inv_mast.item_id as Item,
            mast.location_id as MasterLocation,
            companylocation.location_id as CompanyLocation,
            company.company_name as company,
            vendor_supplier.vendor_id as vendorID

from        inv_loc AS mast

join        inv_mast 
    on      inv_mast.inv_mast_uid = mast.inv_mast_uid 

join        inv_loc AS companylocation
    on      company.company_id = companylocation.company_id 

JOIN        company 
    ON      company.company_id = vendor_supplier.company_id 

【讨论】:

    猜你喜欢
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多