How to retrieve data from the mysql database by joining 5 different tables

advertisements

I am trying to retrieve data from mysql database from 5 different table but it did not work as it should and it did not display anything.

tables are :

  • site_info
  • site_coordinates
  • owner_info
  • subcontractor_info
  • company_info

site_info:

  • siteID
  • companyID -siteNAME
  • ownerID
  • subcontractorID
  • equipmentTYPE

site coordinates:

  • siteID

  • latitude

  • longitude

  • height

owner_info:

  • ownerID
  • ownerNAME
  • ownerCONTACT

subcontractor_info:

  • subcontractorID
  • subcontractorCOMPANY
  • subcontractorNAME
  • subcontractorCONTACT

company_info:

  • companyID
  • companyNAME

mysql query:

select
     site_info.siteID,site_info.siteNAME ,site_info.equipmentTYPE,site_coordinates.latitude,site_coordinates.longitude,site_coordinates.height ,owner_info.ownerNAME,owner_info.ownerCONTACT,company_info.companyNAME,subcontractor_info.subcontractorCOMPANY,subcontractor_info.subcontractorNAME,subcontractor_info.subcontractorCONTACT
from `site_info`
INNER JOIN `owner_info`
  on site_info.ownerID = owner_info.ownerID
INNER JOIN `company_info`
  on site_info.companyID = company_info.companyID
INNER JOIN `subcontractor_info`
  on site_info.subcontractorID = subcontractor_info.subcontractorID
INNER JOIN `site_coordinates`
  on site_info.siteID=site_coordinates.site_id
where owner_info.ownerID = 159

Where is my error, and is there any better way to do it?


I solve it just needed to change to the LEFT JOIN .

so the updated query looks:

select
site_info.siteID,site_info.siteNAME ,site_info.equipmentTYPE,site_coordinates.latitude,site_coordinates.longitude,site_coordinates.height ,owner_info.ownerNAME,owner_info.ownerCONTACT,company_info.companyNAME,subcontractor_info.subcontractorCOMPANY,subcontractor_info.subcontractorNAME,subcontractor_info.subcontractorCONTACT from `site_info`
LEFT JOIN `owner_info`
on site_info.ownerID = owner_info.ownerID
LEFT JOIN `company_info`
on site_info.companyID = company_info.companyID
LEFT JOIN `subcontractor_info`
on site_info.subcontractorID = subcontractor_info.subcontractorID
LEFT JOIN `site_coordinates`
on site_info.siteID=site_coordinates.siteID
where owner_info.ownerID = 159

thank you for your comments and answers