我正在尝试从5个不同的表中从mysql数据库中检索数据,但它没有按预期方式工作,也没有显示任何内容。

表是:


site_info
site_coordinates
owner_info
subcontractor_info
company_info


site_info:


siteID
公司编号
-siteNAME
所有者ID
分包商ID
设备类型


网站坐标:


siteID
纬度
经度
高度


owner_info:


所有者ID
ownerNAME
所有者联系


subcontractor_info:


分包商ID
分包商公司
分包商名称
分包商


company_info:


公司编号
公司名


mysql查询:

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


我的错误在哪里,还有什么更好的方法吗?

最佳答案

我解决了只需要更改为LEFT JOIN即可。

因此更新后的查询如下所示:

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


感谢您的评论和答复

07-24 17:11
查看更多