我试图从 5 个不同的表中的 mysql 数据库中检索数据,但它没有按预期工作,并且没有显示任何内容。
表格是:
- 网站信息
- 站点坐标
- 所有者信息
- 分包商信息
- 公司信息
网站信息:
- 站点ID
- 公司ID -站点名称
- 所有者ID
- 分包商ID
- 设备类型
站点坐标:
站点ID
纬度
经度
高度
所有者信息:
- 所有者ID
- 所有者姓名
- 所有者联系
分包商信息:
- 分包商ID
- 分包商公司
- 分包商NAME
- 分包商联系
公司信息:
- 公司ID
- 公司名称
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
感谢您的评论和回答
关于php - 如何从连接 5 个不同表的 mysql 数据库检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42276175/