No, joins are only possible on fields common to all the aliases in the join.


On 2/16/11 2:56 PM, "sonia gehlot" <[email protected]> wrote:

> Thank you very much Amit.
> 
> One more question in the same way if I want to join multiple tables
> 
>> select blah, blah
>> From
>> page_events pe
>   Left Join referrer ref
>         on ref.id = pe.id
>> Left Join page_events pe_pre
>> on pe.day = pe_pre.day
>> And pe.session_id = pe_pre.session_id
>> And pe.page_seq_num = pe_pre.page_seq_num + 1
> 
> Can we do this in one statement in Pig?
> 
> Thanks again for your help.
> 
> Sonia
> 
> On Wed, Feb 16, 2011 at 2:40 PM, Ramesh, Amit <[email protected]> wrote:
> 
>> 
>> You can just do:
>> 
>> join_pe_pre = JOIN page_events BY (day, session_id, page_seq_num) LEFT
>> OUTER, page_events_pre BY (day, session_id, page_seq_num + 1);
>> 
>> Amit
>> 
>> 
>> On 2/16/11 2:09 PM, "sonia gehlot" <[email protected]> wrote:
>> 
>>> Hi All,
>>> 
>>> I am new to Hadoop and I started exploring Pig since last month. I have
>> few
>>> question I have to replicate some SQL query to Pig that has left join for
>>> example:
>>> 
>>> select blah, blah
>>> From
>>> page_events pe
>>> Left Join page_events pe_pre
>>> on pe.day = pe_pre.day
>>> And pe.session_id = pe_pre.session_id
>>> And pe.page_seq_num = pe_pre.page_seq_num + 1
>>> 
>>> So I wanted to confirm is this is the right and only way to do multi
>> column
>>> join in Pig? Or we can do this in some other way?
>>> 
>>> join1_pe_pre = JOIN page_events BY day LEFT OUTER,  page_events_pre BY
>> day ;
>>> 
>>> join2_pe_pre = JOIN join1_pe_pre BY session_id LEFT OUTER,
>> page_events_pre
>>> BY session_id ;
>>> 
>>> join3_pe_pre = JOIN join2_pe_pre BY page_seq_num LEFT OUTER,
>> page_events_pre
>>> BY page_seq_num +1 ;
>>> 
>>> Thanks for your help.
>>> 
>>> Sonia
>> 
>> 

Reply via email to