Запрос двух таблиц в базе данных с помощью Java - PullRequest
0 голосов
/ 01 октября 2018

Я был побежден великим боссом SQL и теперь обращаюсь за помощью.

Я удалил пробелы в именах таблиц, чтобы избежать путаницы

В любом случае, у меня есть две таблицы «Заказы» и «Детали заказа».Мне нужно запросить несколько столбцов из обоих.До сих пор я мог нормально запрашивать заказы, но когда дело доходит до запроса сведений о заказе или двух вместе, я получаю ошибки.

У меня такой вопрос: как запросить две таблицы?(примечание: точка с запятой внизу, представьте, что это там)

Вот что работает с заказами:

String queryString = "select `Order Date`, Freight "
                   + "from Orders "
                   + "where Orders.`Order ID` = ? "

Вот моя попытка просто взять один столбец из Детали заказа и ошибкаследовать

String queryString = "select Product "
                   + "from `Order Details` "
                   + "where `Order Details`.`Order ID` = ? "
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.1 user lacks privilege or object not found: ORDER DETAILS.ORDER ID
    at net.ucanaccess.jdbc.UcanaccessConnection.prepareStatement(UcanaccessConnection.java:528)

Вот моя попытка схватить одновременно и ошибка, чтобы следовать

String queryString = "select `Order Date`, Freight, Product "
                   + "from Orders, `Order Details` "
                   + "where Orders.`Order ID` = ? "
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.1 user lacks privilege or object not found: PRODUCT
    at net.ucanaccess.jdbc.UcanaccessConnection.prepareStatement(UcanaccessConnection.java:528)

Вот попытка выше с дополнительной строкой внизуобъединяя их (я не знаю, что это делает), но это меняет ошибку.

String queryString = "select `Order Date`, Freight, Product "
                   + "from Orders, `Order Details` "
                   + "where Orders.`Order ID` = ? "
                   + "and Orders.`Order ID` = `Order Details`.`Order ID`"
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.1 user lacks privilege or object not found: ORDER DETAILS.ORDER ID
    at net.ucanaccess.jdbc.UcanaccessConnection.prepareStatement(UcanaccessConnection.java:528)

Ответы [ 2 ]

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

Прочтите об операторах JOIN, это позволит вам работать с двумя таблицами.Попробуйте использовать что-то вроде «ВЫБЕРИТЕ your_columns ОТ заказов».Ошибки типа «объект не найден» означает, что вы не создали таблицу.Хотелось бы, чтобы это помогло.

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

Помещение имени таблицы в кавычки не работает на любом известном мне SQL-сервере без изменения какой-либо конфигурации.Правильный способ использования []:

MSSQL-Пример:

SELECT * FROM [Order Details]

Ваш запрос может выглядеть так:

String queryString = "SELECT Product "
+ "FROM [Order Details] "
+ "WHERE `Order ID` = ? "

Но я бы предложил работатьбез пробелов в любом идентификаторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...