php - mysql select across 2 tables - 如果匹配值在另一个表中,则仅包括 1 中的行

标签 php mysql

我已经为具有多个工作正常的表的客户构建了一个维护数据库,但现在他们希望能够获得报告,而我在跨 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/

相关文章:

php - Eloquent ORM 不使用关系 laravel 获取数据

mysql - 自动创建由主键和其他 2 个外键组成的表

mysql - 如何在MySql触发器中中止INSERT操作?

javascript - 如何获取输入值到php var

php - 用什么替换 HTTP_GET_VARS?

php - wpdb->query UPDATE 查询不起作用

php - 使用 PHP preg_quote 时,正则表达式无法正常显示

php - 如何转换以下内容以插入到 mysql 中?

mysql - Php/Mysql Union 和 Limit offset

php - friend 系统php和mysql查询?