Я получил две таблицы
стол пациента
+----+-------------+-----+
| 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 только к пациенту из набора сущностей верхнего уровня?
Вы можете фильтровать связанные объекты, используя any
а также all
Фильтры, например, вот URL для примера служб OData TripPin, который показывает, как это можно использовать: http://services.odata.org/V4/TripPinServiceRW/People?$filter=UserName eq ‘russellwhyte’ и Trips / any (x: x / Name eq ‘Поездка в США’)
Этот URL-фильтр на UserName
собственность Person
и Name
собственность связанных Trip
Других решений пока нет …