#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) верен. Спасибо за предложение.