Как использовать sql-запрос с помощью IN для инструкции select в Java

#java #sql #jdbc

#java #sql #jdbc

Вопрос:

Мне нужен sql-запрос на Java, в котором есть предложение IN. Я видел предложения по выполнению этого, когда предложение IN является предопределенным набором, таким как числа, которые в этом случае не будут работать, потому что набор будет динамическим. Вот что я пытаюсь сделать:

 select c.cust_name 
from cust_acct c, has h 
where c.cust_id=h.cust_id 
    and h.sh_add in (select a.sh_add from address a where sh_st='VA')
  

Я не получаю никаких ошибок. То есть при выполнении кода я просто не получаю результатов для этого конкретного запроса

Комментарии:

1. Из ответа мистера E следует, что причиной моей проблемы является не предложение IN. Когда я использую код, который он предоставил, я получаю такое же отсутствие результатов. Я думаю, пришло время пойти другим путем. Спасибо.

Ответ №1:

Вы проверили, что получаете правильные промежуточные результаты от select a.sh_add from address a where sh_st='VA' ?

Вы могли бы просто переписать запрос как:

 select c.cust_name 
from cust_acct c
inner join has h 
on c.cust_id=h.cust_id 
inner join address a
on h.sh_add = a.sh_add
where a.sh_st = 'VA'
  

Комментарии:

1. Я проверил его, и он возвращает результаты. Я только что попробовал ваш код, и я получаю те же результаты. Если я попытаюсь выполнить его как sql в представлении базы данных eclipse, он возвращает правильный результат, но когда я пытаюсь выполнить его как часть main, я не получаю результата. Это только один из десяти запросов, и все остальные возвращаются правильно, что делает меня достаточно уверенным, что остальной код (такой как getString и print) верен. Спасибо за предложение.