Multiple joins on same table produces ambiguous column name
>I have solved this with MailCode.alias()

This is the peewee-official way to do reference the same table in multiple contexts within a single query.
I've got this code that inner joins the same table twice:

```
   cnt = (                                                                         
          User.select()
          .join_from(User, MailCode, on=MailCode.sent_by)                                         
          .join_from(User, MailCode, on=MailCode.sent_to)                                         
          .where(User.is_active == True).count()                                                  
      )
```

For some reason it uses alias "t2" twice:

```
SELECT COUNT(1) FROM (
  SELECT 1 FROM "user" AS "t1"
  INNER JOIN "mailcode" AS "t2" ON ("t2"."sent_by_id" = "t1"."id")
  INNER JOIN "mailcode" AS "t2" ON ("t2"."sent_to_id" = "t1"."id")
  WHERE ("t1"."is_active" = True)
) AS "_wrapped"
```

Is this expected behaviour? There is nothing on that in the documentation.

(I have solved this with `MailCode.alias()`, but it seems a pretty common case not to be processed.)