2015-07-10 19 views
0

我在蜂房兩個巨大的表,我有一個運行這類查詢:查詢示例:如何運行與列值蜂房查詢等於選擇一些其他的查詢

select 
    employee_id, 
    employee_name, 
    employee_address, 
    employee_join_date 
    employee_travel_pincodes 
    from employee 
    where 
    employee_join_date = (select join-date from hr_records) 
    and 
    employee_travel_pincodes in (select _pincodes from hr_records) //returns  multiple records 

是什麼在蜂巢最好的方式實現這一目標,我可以使用子查詢,但看起來像它不會達到預期的輸出清晰的方式 我使用蜂巢0.13

回答

0

我建議使用一個更好的性能JOIN:

SELECT 
    employee_id, 
    employee_name, 
    employee_address, 
    employee_join_date 
    employee_travel_pincodes 
FROM employee e 
INNER JOIN hr_records hr 
    ON e.employee_join_date = hr.join-date 
    AND e.employee_travel_pincodes = hr._pincodes 
0

您可以使用左半加入可以在蜂巢被用來代替:

select * from table1 where columnx in (select column x from table2); 

這是equivelent到左半聯接:

select columnx from table1 a left outer join table2 b on a.columnx=b.columnx; 

因此,我將使用基於描述您想要的查詢:

select 
    employee_id, 
    employee_name, 
    employee_address, 
    employee_join_date 
    employee_travel_pincodes 
from employee a 
left semi join hr_records b on a.employee_travel_pincodes=b._pincodes 
where a.employee_join_date=b.join-date 
;