If you start separate joins and then merge, then you may have problems. What to do if the same pair of records fulfills at least two conditions? As a result, you will get duplicates.
I believe your first approach is possible, but do not forget that you are joining the four tables. If the number of rows is A, B, C, D in the corresponding tables, then RDBMS will have to check the maximum records A * B * C * D. If you have many records in your database, this will take a lot of time.
Of course, you can optimize your query by adding indexes to some columns, and it would be a good idea if they are no longer indexed. But do not forget that if you add an index to the column, then RDBMS will be faster to read from there, but slower to write there. If your operations are mostly read (selected), you should index your columns, but not blindly, learn a little about indexing before you start doing this.
In addition, if you join four tables: personal, consumer, personal (again) and uncol_acct, then you can do something like this:
Write a query containing two subqueries, each of which is called t1 and t2, respectively. The first subquery is connected to personal and consumer and will call the result t1. The second request joins the second occurrence of the character with uncol_acct, and the where clause will be inside your second connection. As described above, your request will contain two subqueries named t1 and t2, respectively. Your request will join t1 and t2. This way you will describe, since your main request will only consider a pair of valid t1 and t2.
In addition, if the where clause is outside, as in your query example, then a 4-dimensional connection will be made, and only after that it will be taken into account. This is why the where clause must be inside the second subquery, so the where clause will execute before the main connection. In addition, you can create a subquery in the second subquery to calculate where, if the condition is rarely met.
Hooray!