I am having the hardest time trying to figure out how to join tables if data is not present. The field "draftman" is sometimes known and sometimes NULL. I don't have a problem when a value is present, but how can I join the tables JobInfo and Employees when the draftsman value is NULL? The line Code: inner join Employees as dm on JobInfo.draftsman = dm.empID is where the JobInfo and Employees tables are joined when draftsman is present. Below is my code: Code: $result= mysql_query (" SELECT JobInfo.SystemNumber, JobInfo.dwgnumber, JobInfo.quotenumber, JobInfo.ponumber, JobInfo.jobnumber, JobInfo.salesperson, JobInfo.draftsman, sp.empID as salesId, sp.empfirstname as salesfirstname, sp.emplastname as saleslastname, dm.empID as draftId, dm.empfirstname as draftfirstname, dm.emplastname as draftlastname, FROM JobInfo INNER JOIN Employees as sp ON JobInfo.salesperson = sp.empID inner join Employees as dm on JobInfo.draftsman = dm.empID ") or die (mysql_error()); Thanks for your help in advance.
Code: SELECT JobInfo.SystemNumber, JobInfo.dwgnumber, JobInfo.quotenumber, JobInfo.ponumber, JobInfo.jobnumber, JobInfo.salesperson, JobInfo.draftsman, sp.empID as salesId, sp.empfirstname as salesfirstname, sp.emplastname as saleslastname, dm.empID as draftId, dm.empfirstname as draftfirstname, dm.emplastname as draftlastname, FROM JobInfo INNER JOIN Employees as sp ON JobInfo.salesperson = sp.empID LEFT JOIN Employees as dm ON JobInfo.draftsman = dm.empID
Alternatively, You can use Conditional Left Joins. It is simple. You can see comprehensive post on MySQL conditional Joins at mysqldiary.com/conditional-joins-in-mysql