Hive Query- Joining two tables on three joining conditions with OR operator

后端 未结 2 1461
情歌与酒
情歌与酒 2020-12-31 09:43

I am facing an error

\"FAILED: Error in semantic analysis: Line 1:101 OR not supported in JOIN currently dob\"

while running the below mentione

2条回答
  •  情歌与酒
    2020-12-31 10:20

    You could also use UNION to get the same results:

    INSERT OVERWRITE LOCAL DIRECTORY './Insurance_Risk/Merged_Data' 
    -- You can only UNION on subqueries
    SELECT * FROM (
        SELECT f.name,
            s.age,
            f.gender,
            f.loc,
            f.marital_status,
            f.habits1,
            f.habits2,
            s.employement_status,
            s.occupation_class,
            s.occupation_subclass,
            s.occupation 
        FROM sample_member_detail s 
        JOIN fb_member_detail f 
        ON s.email=f.email 
        WHERE s.email IS NOT NULL AND f.email IS NOT NULL;
    
        UNION
    
        SELECT f.name,
            s.age,
            f.gender,
            f.loc,
            f.marital_status,
            f.habits1,
            f.habits2,
            s.employement_status,
            s.occupation_class,
            s.occupation_subclass,
            s.occupation 
        FROM sample_member_detail s 
        JOIN fb_member_detail f 
        ON s.dob=f.dob
        WHERE s.email IS NOT NULL AND f.email IS NOT NULL;
    
        UNION
    
        SELECT f.name,
            s.age,
            f.gender,
            f.loc,
            f.marital_status,
            f.habits1,
            f.habits2,
            s.employement_status,
            s.occupation_class,
            s.occupation_subclass,
            s.occupation 
        FROM sample_member_detail s 
        JOIN fb_member_detail f 
        ON f.name=s.name AND f.loc = s.loc AND f.occupation=s.occupation
        WHERE s.email IS NOT NULL AND f.email IS NOT NULL;
    
    ) subquery;
    

提交回复
热议问题