Outter joins fungerar inte "som förväntat" i så fall eftersom du uttryckligen har sagt till Oracle att du bara vill ha data om det kriteriet i den tabellen matchar. I det scenariot görs den yttre kopplingen oanvändbar.
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 = ?)
)
[Redigera]Om du förväntar dig flera rader från ett underval kan du lägga till ROWNUM=1 till varje where-sats ELLER använda en sammanställning som MAX eller MIN. Detta kanske inte är den bästa lösningen för alla fall.
[Redigera] Per kommentar,
(SELECT account_type_standard_seq.nextval FROM DUAL),
kan vara bara
account_type_standard_seq.nextval,