Я получаю исключение для столбца не найден, даже если столбец существует

0

Я хочу выполнить запрос к базе данных MySQL с Java. Код выглядит так:

ResultSet resultSet = statement.executeQuery("select col1 from tb1 inner join tb2 on tb1.col2 = tb2.col3 where col4='"+foo+"'");

Запрос работает отлично, когда я использую оболочку, но он не работает, когда я запускаю его с помощью Java, потому что он говорит, что col4 не существует. Но col4 существует.

Я только что попробовал что-то вроде этого;

select col1 from dbname.tb1 as a inner join dbname.tb2 as b on a.col2 = b.col3 where b.col4 = 'foo'
  • 0
    Что такое col4 фактическое имя?
  • 0
    Напечатайте точную ошибку здесь.
Показать ещё 2 комментария
Теги:
jdbc

2 ответа

0

Проблем не было. Я был немного дальше:

ResultSet resultSet = statement.executeQuery("select col1 from tb1 inner join tb2 on tb1.col2 = tb2.col3 where col4='"+foo+"'");
myarray.add(resultSet.getString("col4"));//col4 can't exist here because it has not been selected

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

0

Вы должны вызвать col4 с табличным префиксом "tb1" или "tb2".

В качестве примера: выберите tb1.col1 из внутреннего соединения tb1 tb2 на tb1.col2 = tb2.col3, где tb1.col4 =...

  • 0
    Да, лучше всего квалифицировать все ссылки на столбцы. Но если бы ссылка на col4 была неоднозначной, мы получили бы ошибку 1052 Column 'col4' in where clause is ambiguous , и OP также получит эту ошибку в клиенте командной строки MySQL.
  • 0
    Я пытался указать имя базы данных, но это не работает
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню