Search code examples
sqlpostgresqlsqlexception

Query returns null If any child table has null record


New to PostgreSQL, getting parent and child table data in a single query. The issue is if any one of the child table has null records, the whole query returns null.

SELECT r.resume_id,
       r.resume_name,
       r.updation_date, 
       edu.education_id, 
       edu.title, 
       edu.institute,
       exp.experience_id, 
       exp.designation, 
       exp.company_name, 
       exp.start_date, 
       skill.skill_id, 
       skill.skill_name 
  FROM user_resume r, 
       user_education edu, 
       user_experience exp, 
       user_skill skill 
 WHERE edu.resume_id = r.resume_id AND 
       exp.resume_id = r.resume_id AND 
       skill.resume_id = r.resume_id AND 
       r.resume_id = 1592570

Here is my query in this case the given resume has no records in the experience table, in result it returns null, if I remove the join with experience table, then it returns records.

More in resume table, i have these Boolean fields also, that are false if child table (experience, education or skill table) has no related records. education_missing, experience missing, skill missing etc.


Solution

  • FROM user_resume r
        ,user_education edu
        ,user_experience exp
        ,user_skill skill
    

    is left inner join - it is expected behaviour...

    FROM user_resume r
    LEFT OUTER JOIN user_education edu on COLUMNS
    LEFT OUTER JOIN user_experience exp on COLUMNS
    LEFT OUTER JOIN user_skill skill on COLUMNS
    

    instead