i need query: there 3 tables named:
1. comments (fields: id, uacc_id_fk , comment) (values: 1, 5, comment) (values:2, 10, hi im fine) 2. dogowner_profile (fields: uacc_id_fk,dpro_name,dpro_image) (values:5,jones,jones.jpg) 3. doglover_profile (fields:uacc_id_fk,dlpro_name,dlpro_image) (values:10,jeeva,jeeva.jpg) i need result like:
(fields: uacc_id_fk , comment , name , image) (values: 5, comment, jones, jones.jpg) (values: 10, hi i'm fine, jeeva, jeeva.jpg) but output getting like:
the query used here is:
select comments . * , dpro_name name , dlpro_name name , dpro_image image , dlpro_image image comments left join dogowner_profile on comments.uacc_id_fk = dogowner_profile.dpro_uacc_id_fk left join doglover_profile on comments.uacc_id_fk = doglover_profile.dlpro_uacc_id_fk but result got here is:
(fields:id,uacc_id_fk,comment,name,name,image,image) (values:1,5, comment,jones,null,jones.jpg,null) (values:2,10,hi i'm fine,null,jeeva,null,jeeva.jpg)
if have multiple columns might contain data or might null, , want find first non-null one, use coalesce:
select comments.*, coalesce(dpro_name, dlpro_name) name, coalesce(dpro_image, dlpro_image) image comments left join dogowner_profile on comments.uacc_id_fk = dogowner_profile.dpro_uacc_id_fk left join doglover_profile on comments.uacc_id_fk = doglover_profile.dlpro_uacc_id_fk;
Comments
Post a Comment