Order of expressions matters when doing IN subqueries
Wow, thanks for reporting.  I'll try and get a look at this tonight.
 Should be fixed in 92aec9da99f4fe8bf23ffed4cf9dc8b5971e4b4a
 Confirmed!

Thanks so much

Hey, I've found an odd little edge case

```
device = get_object_or_404(Device, Device.id == identifier)
my_messages = Message.select().join(Notification).join(Device).where(Device.id == device.id)
messages = Message.select().where((Message.id << my_messages) | (Message.query == "*"))
```

This query fails with the error `sqlite3.OperationalError: no such column: t2.query` but if you _swap_ the order of the expressions:

```
messages = Message.select().where((Message.query == "*") | (Message.id << my_messages))
```

That query works fine.

Similarly, if you try to write it as two separate queries:

```
my_messages = Message.select().join(Notification).join(Device).where(Device.id == device.id)
everyone_messages = Message.select().where(Message.query == "*")
messages = Message.select().where((Message.id << my_messages) | (Message.id << everyone_messages))
```

That'll also fail, with the similar error `sqlite3.OperationalError: no such column: t2.id`. Switching the order of expressions doesn't do anything in this case.

p.s. forgive me if this is the most newb-y way to write this type of query. I'm learnin' :) Can't seem to find a way to do a UNION in peewee, which would be my first choice.

---

In short form, my models are:

```
class Device(db.Model):

class Message(db.Model):
    query = CharField()

class Notification(db.Model):
    device = ForeignKeyField(Device, related_name="notifications", cascade = True)
    message = ForeignKeyField(Message, related_name='notifications', cascade = True)
```
