2014-01-28 85 views
0

現有的查詢:修改選擇查詢

SELECT av.FIELD3, av.STRINGVALUE FROM attrvalue av 
    WHERE av.FIELD3 IN 
    (
     SELECT ha. EXTNL_ATTR_ID FROM thd.HD_ATTR ha 
     WHERE ha.ATTR_GRP_ID IN (14,15) 
    ) 
    AND av.catentry_id >= 100000000 

誠徵修改此查詢來選擇此列,以及:ha.ATTR_GRP_ID

請協助。

+1

我將與SQL標記這一點,這是您使用的發動機,可你寫關鍵字CAPITAL(可讀性++)和你嘗試過什麼?這是一個家庭作業/任務(因爲在查詢後「獲取前10行只有你的....」)的評論? – x29a

+0

試試這個:'選擇av.FIELD3,av.STRINGVALUE,ha.ATTR_GRP_ID從attrvalue av內連接thd.HD_ATTR ha在哪裏ha。 EXTNL_ATTR_ID = av.FIELD3和ha.ATTR_GRP_ID(14,15)和av.catentry_id> = 100000000' –

回答

1

請與HD_ATTR表

SELECT av.FIELD3, av.STRINGVALUE, ha.ATTR_GRP_ID 
FROM attrvalue av 
INNER JOIN 
(
    SELECT _ha.EXTNL_ATTR_ID, _ha.ATTR_GRP_ID 
    FROM thd.HD_ATTR _ha 
    WHERE ha.ATTR_GRP_ID IN (14,15) 
) ha 
ON ha.EXTNL_ATTR_ID = AV.FIELD3 
WHERE av.catentry_id >= 100000000 
+0

您不應該需要子查詢,只需在作爲連接一部分的'WHERE'子句中添加條件即可。但是,是的,這應該是他正在尋找的東西(減去子查詢中的印刷錯誤 - 無論如何你都不需要別名)。 –

0

據我瞭解這一點,你需要從表訪問不能完成的子查詢數據的加入。相反,您需要將此查詢重組爲兩個表之間的連接,以便您可以確定哪個組與哪條記錄配合。

,我建議您使用內嘗試這個連接的兩個表