Reputation: 15
I have two table structures here:
employee
(emp_id INT AUTO_INCREMENT PRIMARY KEY,
emp_name VARCHAR(100),
emp_ic VARCHAR(20),
emp_phone VARCHAR(20),
emp_address VARCHAR(200))
employee_medical
(id INT AUTO_INCREMENT,
emp_id INT,
medical_notes TEXT
PRIMARY KEY (id),
FOREIGN KEY (emp_id) REFERENCES employee(emp_id))
I want to join two table and show all employee result and only medical_notes on employee_medical table
But when I type this it didn't work:
SELECT employee.emp_id, employee.emp_name , employee.emp_ic,employee.emp_phone, employee.emp_address , employee_medical.medical_notes
FROM employee
JOIN employee_medical
WHERE employee.emp_id = employee_medical.emp_id
This only show like it :
emp_id emp_name emp_ic emp_phone emp_address medical_notes
1 a 1 1 1 2
2 b 1 1 1 2
But I want to get results like this:
emp_id emp_name emp_ic emp_phone emp_address medical_notes
1 a 1 1 1 2
2 b 1 1 1 2
3 c 1 1 1 null
4 d 1 1 1 null
5 e 1 1 1 null
6 f 1 1 1 null
How can I show all result like it? Please help.
Upvotes: 0
Views: 50
Reputation: 2153
Try this
SELECT employee.emp_id, employee.emp_name, employee.emp_ic,employee.emp_phone, employee.emp_address , if(employee_medical.medical_notes = '', NULL, employee_medical.medical_notes) AS medical_notes
FROM employee
LEFT JOIN employee_medical ON(employee_medical.emp_id =employee.emp_id)
Upvotes: 1