Witam, mam program który łączy się z bazą i pobiera z niej dane, i w linijce
private static final String updateCeny=
"update books " + "set price=price + ? "+
" where books.publisher_id=(select publisher_id from publishers where name=?)";
gdzie jest
(select publisher_id from publishers where name=?)
wyrzuca mi błąd??
Czy można to zapytanie zrobić inaczej??
witam
"update books " + "set price=price + ? "+
" where books.publisher_id=(select publisher_id from publishers where name=?)";
Zgaduje ,że chcesz wykonac akcję update dla kazdego publisher_id z tabeli books
, który wystepuje także w zbiorze:
" select publisher_id from publishers where name=?"
Jesli tak ,spróbuj :
"update books " + "set price=price + ? "+
" where books.publisher_id IN (select publisher_id from publishers where name=?)";
Próbowałem już tak ale nic, prawdopodobnie mysql nie obsługuje podzapytań. Czy mógłbyś polecić jakąś inną bazę, jeżeli na jakiejś pracujesz, gdzie mogę ją dostać i Drivery do niej?? Dzięki
Podzapytania w mysql działają zdaje sie od wersji 4.
Co do innej bazy to polecam postgresql .
Sterownika tutaj poszukaj
http://jdbc.postgresql.org/
Tak, znalazłem w książce, że podzapytania własnie są obsługiwane od wersji 4.1... , już wszystko działa. Dzięki