我已经为具有多个工作正常的表的客户构建了一个维护数据库,但现在他们希望能够获得报告,而我在跨 2 个表创建 select 语句时遇到了问题。
用户可以搜索维修类型、开始/结束日期和位置...在 2 个日期之间返回维修类型的结果完全没有问题(全部保存在同一个表中),但不同类型维修的表不t 存储位置信息,该信息与车辆信息表中的信息相对应。
所以在一张表上我可以查询类似的东西:
SELECT fid from cm_repair where start_date >= '$date1' AND end_date <= '$date2'
在另一张 table 上我可以有:
SELECT id from cm_fleet where location='$loc'
无论如何我可以组合这些以便我只获得 id 和 fid 匹配的行吗?
最佳答案
您可以使用INNER JOIN
:
SELECT fid
from cm_repair as t1
join cm_fleet as t2 on t1.fid = t2.id and location='$loc'
where start_date >= '$date1' AND end_date <= '$date2'
关于php - mysql select across 2 tables - 如果匹配值在另一个表中,则仅包括 1 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36184278/