我已經閱讀了很多關於該主題的文章,但是我無法讓它適用於我的案例。T-SQL左連接1行(limi,subselect)
我有以下情況:
- 的OrderItems(我想主要的數據集)
- 文章其中有1清單:1關係的訂單項目
- A N: m可加入的「Articlesupplier」,創建物品和 合作伙伴之間的關係
- 合作伙伴表格,包含有關合作夥伴的詳細信息。
目標:
每OrderItem的,並從供應商我只是想在加入找到的第一個 一個數據集。不需要優先。
表:
表IDX_ORDERITEM
id,article_id
表IDX_ARTICLE
id,name
表IDX_ARTICLESUPPLIER
article_id,partner_id
表IDX_PARTNER
id,abbr
我的實際語句(短版):
SELECT IDX_ORDERITEM.id
FROM
dbo.IDX_ORDERITEM AS IDX_ORDERITEM
-- ARTICLE --
INNER JOIN dbo.IDX_ARTICLE AS IDX_ARTICLE
ON IDX_ORDERITEM.article_id=IDX_ARTICLE.id
-- SUPPLIER VIA ARTICLE --
LEFT JOIN
(SELECT TOP(1) IDX_PARTNER.id, IDX_PARTNER.abbr
FROM IDX_PARTNER, IDX_ARTICLESUPPLIER
WHERE IDX_PARTNER.id = IDX_ARTICLESUPPLIER.partner_id
AND IDX_ARTICLESUPPLIER.article_id=IDX_ARTICLE.id) AS IDX_PARTNER_SUPPLIER
ON IDX_PARTNER_SUPPLIER.id=IDX_ARTICLE.supplier_partner_id
WHERE 1>0
ORDER BY orderitem.id DESC
但似乎我不能訪問IDX_ARTICLE.id子查詢。我收到以下錯誤消息:
無法綁定多部分標識符「IDX_ARTICLE.id」。
問題是文章別名與表名具有相同的名稱嗎?
非常感謝提前對可能的想法, 邁克
這是一個非常不幸的是,糟糕的命名約定打電話給你的表'IDX _......' - 這將直觀地指一個** **指標 - 不是表! –
你是對的,但不幸的是,這不是我的數據庫,ERP系統的名稱是「IDX」,這就是這種命名約定的原因。 – Michael