Я не уверен, почему это ведет себя так. Мне нужно выбрать несколько значений из двух таблиц, основываясь на некоторых критериях, которые должны быть понятны из запроса, который я пробовал ниже.
query = @"SELECT n.borrower, a.sum, n.lender FROM Notification AS n, Acknowledgment AS a
WHERE n.deleted=@del2 AND n.id IN (SELECT parent_id FROM Acknowledgment
WHERE status=@status AND deleted=@del1)";
Возвращает больше строк (12), чем ожидалось.
У меня есть две таблицы «Уведомление» и «Подтверждение», которые имеют поле «сумма». Когда я пытаюсь выполнить запрос ниже, он дает правильные 3 строки, как и ожидалось.
@"SELECT n.borrower, n.sum, n.lender FROM Notification AS n
WHERE n.deleted=@del2 AND n.id IN (SELECT parent_id FROM Acknowledgment
WHERE status=@status AND deleted=@del1)";
Теперь мне нужно расширить этот запрос, чтобы мне нужно было a.sum
, а не n.sum
. Но когда я пытаюсь выполнить первый запрос, он дает намного больше строк, я имею в виду, что условие WHERE
не работает. Я не знаю, если это причуды с MS Access или что-то не так с запросом. Я ценю альтернативную реализацию в доступе, если мой запрос выглядит нормально, потому что он просто не работает! :)
Я прочитал здесь , что различные базы данных осуществляют выбор по-разному. Не знаю, если это что-то конкретное с доступом ..
После предложения от Li0liQ я попробовал это:
@"SELECT n.borrower, a.sum, n.lender FROM Notification AS n
INNER JOIN Acknowledgment AS a ON a.parent_id = n.id AND a.status=@status AND a.deleted=@deleted1
WHERE n.deleted=@deleted2"
Но теперь я получаю ошибку «Выражение JOIN не поддерживается».