2016-12-05 29 views
-1

請幫我解決這個問題:顯示從內部查詢一個欄

SELECT a.prs_code, 
     a.cc, 
     b.description 
FROM idp_inpadoc_prs_cc a, 
     idp_inpadoc_cat_desc b 
WHERE a.ID = b.ID 
     AND a.prs_code IN (SELECT prs_code 
          FROM tls221_inpadoc_prs c, 
           tls201_appln d 
          WHERE c.appln_id = d.appln_id 
           AND c.appln_id IN ('1', '2')); 

在此查詢中,有prs_codeccdescription,我也想顯示相應的appln_id一起。我怎樣才能做到這一點?請幫助。謝謝! :)

+2

爲什麼這麼多RDBMS標籤?你正在使用哪一個? –

+0

我正在使用HeidiSQL。 – PalB

+0

我已經爲它添加了標籤。請記住,當您標記SQL相關時,不要使用混合的RDBMS相關標記,因爲像以前一樣,Oracle和MySQL在語法上有一些差異。 –

回答

0

所以,當你開始尋找這個轉變對加入本應該做的與您的查詢,因爲appln_id是雙方的tls221_inadoc_prstsl201_appln表,這樣你實際上並不需要以後臺如果tls221_inadoc_prs.appln_id是外鍵tls201_appln.appln_id這意味着如果該值在tls221_inadoc_prs那麼它也必須在tls201_appln

SELECT a.prs_code, 
     a.cc, 
     b.description 
     ,c.appln_id 
FROM 
    idp_inpadoc_prs_cc a 
    INNER JOIN idp_inpadoc_cat_desc b 
    ON a.ID = b.ID 
    INNER JOIN tls221_inpadoc_prs c 
    ON a.prs_code = c.prs_code 
    AND d.appln_id IN (1,2) 

如果它不是一個外鍵,你可以簡單地添加其他加盟,以及:

SELECT a.prs_code, 
     a.cc, 
     b.description 
     ,c.appln_id 
FROM 
    idp_inpadoc_prs_cc a 
    INNER JOIN idp_inpadoc_cat_desc b 
    ON a.ID = b.ID 
    INNER JOIN tls221_inpadoc_prs c 
    ON a.prs_code = c.prs_code 
    AND c.appln_id IN ('1', '2') 
    INNER JOIN tls201_appln d 
    ON c.appln_id = d.appln_id 
+1

在選擇中添加了一個獨特的後,這似乎工作!謝謝!你是對的。 tls201是不需要的。 appln_id連接表tls221和tls201。 – PalB