2014-03-06 67 views
0

我有三張桌子。我想要顯示的主表包含所有數據,而其他兩個表包含參考ID在主表中可用的值。我想顯示主表中的所有值以及其他兩個表中可用的值。如何將連接放入3個表格中?

PART_ID和SERIAL_ID值分別在表B和表C中可用。我如何顯示數據?

我正在使用內部連接,它顯示的結果,但不是根據我的要求。

這裏是我的SQL代碼:

SELECT 
    TEMP_RMA_ENQUIRY.TEMP_ID, 
    PART_NUMBER_TBL.PART_NO, 
    PART_SERIAL.SERIAL_NUM 
FROM TEMP_RMA_ENQUIRY 
INNER JOIN PART_NUMBER_TBL 
    ON TEMP_RMA_ENQUIRY.RMA_PART_NO=PART_NUMBER_TBL.PARTID 
INNER JOIN PART_SERIAL 
    ON TEMP_RMA_ENQUIRY.RMA_SERIAL_NO=PART_SERIAL.SERIAL_ID 
+0

爲什麼結果錯了嗎?你期望得到什麼? – Mureinik

+0

如果您告訴我們「要求」是什麼,這可能會有所幫助。如果你想從'TEMP_RMA_ENQUIRY'和只有那些從'PART_NUMBER_TBL'和'PART_SERIAL'匹配的所有東西,然後使用'LEFT JOIN' – freefaller

+0

我不清楚你的要求,也不知道你的示例查詢無法滿足你的要求。一個有用的做法是給我們一些樣本數據,然後給出你想要的輸出的例子。使用[sqlfiddle](http://www.sqlfiddle.com)可以爲此提供幫助。 – MatBailie

回答

3

使用左連接相反內蒙古JOIN

試試這個

SELECT TEMP_RMA_ENQUIRY.TEMP_ID, 
     PART_NUMBER_TBL.PART_NO, 
     PART_SERIAL.SERIAL_NUM 
    FROM TEMP_RMA_ENQUIRY 
     LEFT JOIN PART_NUMBER_TBL 
        ON TEMP_RMA_ENQUIRY.RMA_PART_NO=PART_NUMBER_TBL.PARTID 
     LEFT JOIN PART_SERIAL 
        ON TEMP_RMA_ENQUIRY.RMA_SERIAL_NO=PART_SERIAL.SERIAL_ID