OData查询$ filter有多个条件

时间:2016-11-03 06:59:57

标签: php filter odata multiple-conditions

我有两张桌子

病人表

+----+-------------+-----+
| id | name        | age |
+----+-------------+-----+
|  1 | justin john |  49 |
|  2 | tim blake   |  51 |
+----+-------------+-----+

checkup table
+-----+------------+------------+
| cid | patient_id | date       |
+-----+------------+------------+
|   1 |          1 | 2016-11-02 |
|   2 |          2 | 2016-11-03 |
+-----+------------+------------+

我想在以下条件下加入两个表

SELECT patient.id, patient.name, patient.age, checkup.date FROM patient LEFT JOIN checkup ON patient.id = checkup.patient_id WHERE patient.age > 50 AND checkup.date = '2016-11-03'

如何使用OData $ filter实现上述目的。 $ filter仅适用于顶级实体集患者吗?

1 个答案:

答案 0 :(得分:1)

您可以使用anyall过滤器过滤相关对象,例如,此处是示例OData TripPin服务的网址,其中显示了如何使用此功能:http://services.odata.org/V4/TripPinServiceRW/People?$filter=UserName eq 'russellwhyte' and Trips/any(x: x/Name eq 'Trip in US')

此网址会过滤UserName的{​​{1}}媒体资源以及相关Person

Name媒体资源