2014-01-15 28 views
0

我有兩個交叉表查詢幾乎完全相同,一個是訂購另一個不是訂購(開/關複選框(交叉表的標準是真或假))MTO有一個203行和NMTO有160行,如果我離開連接,所以我從MTO得到一切我得到213行,但我需要總共225行,但17行只有NMTO數據,並沒有被包括我試過重寫加入使用公正的條件和我有沒有運氣在訪問報告中加入多個交叉表

我可能失去了一些東西簡單(我希望)

回答

0

您需要創建2個數據集包含鍵列,然後一個「超集」在使用Out的查詢中使用它呃加入

階段1:創建UNION查詢以從MTO和NMTO獲取全套唯一鍵。這應該包含構成超集的225條記錄。

階段2:創建包含此UNION查詢以及MTO和NMTO的第二個查詢。設置連接以包含UNION查詢和來自MTO的匹配記錄的所有內容;對於UNION查詢和NMTO之間的連接完全相同。

現在應該返回225條記錄。

============================================== ====================

編輯:樣例

假設2個表(或查詢),以及mtonmto具有一致的ID字段(一個或多個),以下查詢將起作用:

SELECT superset.id, mto.mto_1, mto.mto_2, nmto.nmto_1, nmto.nmto_2 
FROM ((SELECT mto.id from mto UNION SELECT nmto.id from nmto) AS superset 
LEFT JOIN mto ON superset.id = mto.id) 
LEFT JOIN nmto ON superset.id = nmto.id; 

您可以擴展此方法以包含超過2個表格,並以超集爲中心。如有任何問題,請在下面評論,我會提供屏幕截圖和/或更多信息。