That's not what I would expect the output to be.  If you're doing this:

```php
$select46->combine($select46b, Select::COMBINE_UNION, 'ALL')->order(array('a DESC'));
```
I am expecting that you're applying an order to ```$select46```, which is the first SELECT.  So I'd be expecting, by reading your code, you are attempting to produce this:

```sql
( SELECT "foo".* FROM "foo" WHERE a = b ORDER BY "a" DESC ) UNION ALL ( SELECT "bar".* FROM "bar" WHERE c = d )