2011-01-06 178 views
0

我有3個表,我如下連接這兩個表:甲骨文加入問題

SELECT EMP.FNAME,EMP.LNAME,EMP.AGE,EMPD.TQ,EMPD.TA,CTY.CITY_NAME FROM 
EMPLOYEE EMP,EMPLOYEE_DETAIL EMPD, CITY CTY 
WHERE EMP.EMP_ID=EMPD.EMP_ID AND EMPD_CITY_ID=CTY.CITY_ID 

我要顯示的記錄,即使市記錄不在CITY表。例如。如果說10的城市_ID記錄不在城市表中,但是存在帶有City_id 10的員工詳細記錄,則它應該顯示City_name爲空,而不是根本不顯示記錄。

感謝您的幫助

回答

2

您需要使用左連接:

SELECT EMP.FNAME, 
       EMP.LNAME, 
       EMP.AGE, 
       EMPD.TQ, 
       EMPD.TA, 
       CTY.CITY_NAME 
    FROM EMPLOYEE EMP INNER JOIN EMPLOYEE_DETAIL EMPD 
     ON EMP.EMP_ID=EMPD.EMP_ID LEFT JOIN CITY CTY 
    ON EMPD_CITY_ID=CTY.CITY_ID 

一個不太詳細的版本(特定於Oracle):

SELECT EMP.FNAME, 
      EMP.LNAME, 
      EMP.AGE, 
      EMPD.TQ, 
      EMPD.TA, 
      CTY.CITY_NAME 
    FROM EMPLOYEE EMP, 
     EMPLOYEE_DETAIL EMPD, 
      CITY CTY 
WHERE EMP.EMP_ID=EMPD.EMP_ID 
    AND EMPD_CITY_ID=CTY.CITY_ID(+)