我有两张桌子
病人表
+----+-------------+-----+
| 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仅适用于顶级实体集患者吗?
答案 0 :(得分:1)
您可以使用any
和all
过滤器过滤相关对象,例如,此处是示例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
媒体资源