Joins specified by the JOIN keyword are optimizable. This means that Derby can use an index on the inner table of the join (start and stop conditions are being supplied implicitly by the rows in the outer table).
SELECT * FROM Countries, Cities WHERE Countries.country_ISO_code = Cities.country_ISO_code