yo,
naja, dass die Werte nicht überschrieben werden ;)
wenn ich dich richtig verstanden habe, willst du einen OUTER JOIN machen, und wenn es einen Datensatz gibt der im OUTER JOIN trifft, willst du zum beispiel an einer spalte diesen wert haben. Das geht recht einfach, zum beispiel mit einem CASE konstrukt. da prüfst du einfach, ob deine spalte r_id > 0 ist und wenn ja, nimmst du den wert aus der OUTER JOIN tabelle, ansonsten den alten.
Ilja