rpsv
@rpsv
делай либо хорошо, либо никак

Почему не выполняется запрос к базе?

Здрасте! Проблема с выполнением запроса, не могу понять что к чему! Имеется функция selectDataOfTable, которая на вход получает схему выборки и собственно таблицы. Печаль возникает когда я пытаюсь выгрузить данные из таблицы VacanciesOfEmployers (схемы таблиц внизу), при чем:

- При запросе:
Запрос раз
"SELECT VacanciesOfEmployers.id, Employers.name, Employers.contacts, Employers.hr_specialist, Vacancies.name, requirement, minCost, maxCost, placementDate FROM (VacanciesOfEmployers INNER JOIN Employers ON VacanciesOfEmployers.id_employer = Employers.id) INNER JOIN Vacancies ON Vacancies.id = VacanciesOfEmployers.id_vacancy"

Исключение: "no such column: VacanciesOfEmployers.id"

- При запросе:
Запрос два
"SELECT Employers.name, Employers.contacts, Employers.hr_specialist, Vacancies.name, requirement, minCost, maxCost, placementDate FROM (VacanciesOfEmployers INNER JOIN Employers ON VacanciesOfEmployers.id_employer = Employers.id) INNER JOIN Vacancies ON Vacancies.id = VacanciesOfEmployers.id_vacancy"

Исключение: "no such column: Employers.name"

- При запросе:
Запрос три
"SELECT * FROM (VacanciesOfEmployers INNER JOIN Employers ON VacanciesOfEmployers.id_employer = Employers.id) INNER JOIN Vacancies ON Vacancies.id = VacanciesOfEmployers.id_vacancy"

Исключение: "no such column: VacanciesOfEmployers.id_vacancy"

Если делать запрос к базе через SQLite Expert Personal то запрос выполняется во всех трех вариантах!

Функция selectDataOfTable
String[] columns = this.getColumnsForTable(select, tableName);
List<Object[]> result = new ArrayList<>();
ResultSet rs = cursor.executeQuery("SELECT "+ select +" FROM "+ tableName +" ORDER BY name ASC");
/** прочитываем значения из RS и заполняем массив в соотвествии со столбцами */
while(rs.next()) {
    Object[] row = new Object[columns.length];
    for (int i=0; i<columns.length; i++) {
        row[i] = rs.getString(columns[i]);
    }
    result.add(row);
}
return result;

Схема таблицы
[id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
[id_employer] INTEGER NOT NULL CONSTRAINT [FK_employers] REFERENCES [Employers]([id]) ON DELETE RESTRICT ON UPDATE RESTRICT,
[id_vacancy] INTEGER NOT NULL CONSTRAINT [FK_vacancy] REFERENCES [Vacancies]([id]) ON DELETE RESTRICT ON UPDATE RESTRICT,
[requirement] TEXT NOT NULL,
[minCost] INTEGER,
[maxCost] INTEGER,
[placementDate] DATE NOT NULL)"
  • Вопрос задан
  • 2630 просмотров
Пригласить эксперта
Ответы на вопрос 1
nulldef
@nulldef
Senior Software Developer
Уберите скобки, они там ни к чему
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы