Outter joins virker ikke "som forventet" i det tilfælde, fordi du eksplicit har fortalt Oracle, at du kun vil have data, hvis kriterierne på den tabel matcher. I det scenarie bliver den ydre joinforbindelse ubrugelig.
En løsning
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 = ?)
)
[Rediger]Hvis du forventer flere rækker fra et undervalg, kan du tilføje ROWNUM=1 til hver where-sætning ELLER bruge en aggregering som f.eks. MAX eller MIN. Dette er selvfølgelig muligvis ikke den bedste løsning i alle tilfælde.
[Rediger] Per kommentar,
(SELECT account_type_standard_seq.nextval FROM DUAL),
kan være lige
account_type_standard_seq.nextval,