2014-12-17 16 views
5

Hi Ho avuto alcuni problemi con la seguente queryvalido Identifier su Sql left join Oracle

SELECT * 
FROM PARTNER P 
    , ADDRESS A 
    ,DOSSIERPARTNERRELATIONSHIP DPR 
    LEFT JOIN PARTNERHIST PH ON P.ID=PH.PARTNER_ID 
WHERE (P.NAME ='Burger' OR PH.NAME='Burger') 
AND P.ID = DPR.PARTNER_ID 
AND A.PARTNER_ID = P.ID 
; 

quando im cercando di eseguirlo ho ottenuto il seguente errore ORA-00904: "P" "ID":. Non valida identificatore

anche quando im che cercano il seguente ho ottenuto lo stesso errore

SELECT * 
FROM PARTNER P 
    , ADDRESS A 
    ,DOSSIERPARTNERRELATIONSHIP DPR 
    LEFT JOIN PARTNERHIST PH ON PARTNER.ID= PH.PARTNER_ID 
WHERE (P.NAME ='Burger' OR PH.NAME='Burger') 
AND P.ID = DPR.PARTNER_ID 
AND A.PARTNER_ID = P.ID 
; 

vorrei davvero appriciate aiuto e spiegazioni

risposta

3

Prova questa:

SELECT * 
FROM PARTNER P 
INNER JOIN ADDRESS A ON A.PARTNER_ID = P.ID 
INNER JOIN DOSSIERPARTNERRELATIONSHIP DPR ON P.ID = DPR.PARTNER_ID 
LEFT JOIN PARTNERHIST PH ON P.ID= PH.PARTNER_ID 
WHERE (P.NAME ='Burger' OR PH.NAME='Burger') 
+3

ringraziarvi questo ha funzionato, così ho anche chiamare la inner join esplicita quando uso un outer join o qual è stata la causa? – tung

+0

@SaharshShah qualsiasi URL o riferimento a questi standard? – rogerdpack