SQLite JOIN таблица с отношением - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь выяснить, где у меня проблема в этом куске кода.

public static void main(String[] args) throws ClassNotFoundException, SQLException {

    Class.forName("org.sqlite.JDBC");
    Connection conn = DriverManager.getConnection("jdbc:sqlite:STUDENTS.db");
    Statement stat = conn.createStatement();
    //ResultSet rs = stat.executeQuery("select * from tabulka_faktov");
    ResultSet rs = stat.executeQuery("SELECT tabulka_faktov.MENO, tabulka_faktov.PREDMET1, tabulka_faktov.PREDMET2 FROM tabulka_faktov " +
            "INNER JOIN meno_ID ON tabulka_faktov.MENO = meno_ID.MENO");
    while (rs.next()) {
        System.out.println(rs.getString("MENO"));
        System.out.println("predmet 1 = " + rs.getString("PREDMET1"));
        System.out.println("predmet 2 = " + rs.getString("PREDMET2"));
        //System.out.println("volitelny = " + rs.getString("VOLITELNY_PREDMET"));
    }
    rs.close();
    conn.close();
}

Это не возвращает мне ошибку, но я ничего не получаю из этого кода, просто процесс завершен скод выхода 0.

Моя БД выглядит так DB Design

Я использую базу данных SQLite

Можете ли вы, ребята, сказать мне, где у меня естьошибка?

Спасибо

Ответы [ 3 ]

0 голосов
/ 17 октября 2018

Правило таково:

Ключевое слово INNER JOIN выбирает записи, которые имеют совпадающие значения в обеих таблицах.

В вашей таблице tabulka_faktov есть столбец MENO типа integer итаблица meno_id имеет столбец MENO типа text.Как их значения могут совпадать?Измените тип данных MENO в tabulka_faktov на text, если это не нарушает никаких правил в вашей базе данных, и попробуйте снова.

0 голосов
/ 17 октября 2018

Метод "rs.getString ()", не обязательный для заполнения "rs.getNString ()"

0 голосов
/ 17 октября 2018

Тот факт, что вы не получаете сообщение об ошибке, означает, что код выполняется успешно.Так что, вероятно, нет результатов, соответствующих вашему запросу.

Попробуйте выполнить запрос в системе управления базами данных.

...