0
我正在使用的數據庫(我無法更新或修改其中的任何內容,我只能查詢它以獲取我創建的報告)是以相當奇怪的方式建立。有時信息需要一百萬張中介表才能到達,而有時候所有信息都在同一張表中。從多個條件下的1個表查詢而不會生成多行
爲了得到獨一無二的地址,我需要,我一定要參加3個表(包含表的發票信息,它包含了一些分配給每個組織到包含數據庫中的所有組織表密鑰表)。三張桌子中的最後一張擁有每一家公司,但公司可以擁有不同的角色(例如,一家公司可以是供應商,一家可以是客戶,也可以是合作伙伴等),所以桌子上有一個「類型」一欄,上面寫着1 =供應商,2 =客戶等在那裏
的示例代碼和數據均低於作用(對不起,我似乎無法得到表得以正確格式化這裏):
select * from a
join b on a.id=b.id
join c on b.orgid=c.orgid
數據:
a.OrderID b.Organization c.Role
-----------------------------------------
123 Acme Inc. 1
123 Roadrunner Inc. 2
123 Venture Co. 2
我在做需求拉動的順序編號,供應商,客戶和PA查詢rtner,但無論我如何加入或如何嘗試使用WITH
語句,它都會生成3行,其中每行中三個角色中的一個被命名,其餘爲NULL。
任何人都可以提供幫助嗎?
非常感謝您花時間閱讀這個冗長的問題。
這聽起來像你有重複的記錄角色數據庫,公司具有NULL角色。要麼,要麼你的查詢真的是使用左/右外連接。你能檢查這些東西嗎? – 2012-07-29 15:59:35
如果您發佈代碼,XML或數據樣本,請在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼示例」按鈕(「{}」)以良好地格式化並語法突出顯示 – 2012-07-29 16:33:08
+1對於請求用於表格結構和示例代碼。另外,我想指出你遇到的問題是相當普遍的,而不是「奇怪的」。擁有三個表格只是意味着數據庫被設計爲處理多對多關係(儘管我覺得很奇怪訂單可能屬於多個客戶)。如果您使用(幾乎)任何數據庫,則通過關係映射表連接兩個信息表是常見的事情。 – Diego 2012-07-29 19:13:33