запрос реляционного разбора, возвращающий ложный ответ

У меня есть запрос parse.js, который возвращает все строки из таблицы (tableA), которая, как и ожидалось, работает; но я хочу, чтобы возвращались только строки, содержащие указатель на строку в другой таблице (tableB), в которой одно поле («Сумма») больше указанного числа. Запрос оформляется следующим образом:

var tableA = Parse.Object.extend('tableA');
var minSalary = 200;
var q = new Parse.Query(tableA);
q.include('tableB');
q.greaterThan('Amount',minSalary);

Результат, который я получаю, равен «0», если я включаю последнюю строку. Я пробовал все, включая запись через точку: q.include('tableB.Amount'), и в таблице A есть несколько строк, которые должны были быть извлечены.

Почему это?


person liquidus219    schedule 20.12.2012    source источник
comment
Невозможно ответить на этот вопрос без дополнительного контекста: какую библиотеку вы используете? Откуда взялся этот код?   -  person Matt Fenwick    schedule 20.12.2012
comment
Я использую Parse.js v1.1.14, и этот код просто взят из моего основного файла js, где мне нужно заполнить таблицу.   -  person liquidus219    schedule 20.12.2012
comment
Можете ли вы добавить ссылку на сайт Parse.js в вопрос?   -  person Matt Fenwick    schedule 20.12.2012


Ответы (1)


Последняя строка, GreaterThan, применяется к 'tableA'. Похоже, вы хотите применить это к объектам из tableB. Вместо этого вы хотите использовать innerQuery.

var tableA = Parse.Object.extend("tableA");
var tableB = Parse.Object.extend("tableB");

var innerQuery = new Parse.Query(tableB);
innerQuery.greaterThan("Amount", salary);

var query = new Parse.Query(tableA);
query.include("tableB");
query.matchesQuery("tableB", innerQuery);
person Héctor Ramos    schedule 20.12.2012