Външните присъединявания не работят "както се очаква" в този случай, защото изрично сте казали на Oracle, че искате данни само ако тези критерии в тази таблица съвпадат. В този сценарий външното присъединяване се прави безполезно.
Заобиколно решение
INSERT INTO account_type_standard
(account_type_Standard_id, tax_status_id, recipient_id)
VALUES(
(SELECT account_type_standard_seq.nextval FROM DUAL),
(SELECT tax_status_id FROM tax_status WHERE tax_status_code = ?),
(SELECT recipient_id FROM recipient WHERE recipient_code = ?)
)
[Редактиране]Ако очаквате няколко реда от подселекция, можете да добавите ROWNUM=1 към всяка клауза where ИЛИ да използвате агрегат като MAX или MIN. Това разбира се може да не е най-доброто решение за всички случаи.
[Редактиране] На коментар,
(SELECT account_type_standard_seq.nextval FROM DUAL),
може да бъде просто
account_type_standard_seq.nextval,