How can I sync my google calendar with my work exchange calendar with my iphone calendar? Basically I'd like changes in all of these to be reflected on my iphone... but it would be cool to have all three completely synched.

Google Calendar:
- has multiple calendars (some public, some private)

Exchange Calendar:
- work calendar, access via my mac book pro

iphone Calendar:
- my portable calendar in case I need to add something on the fly/away from my desk... I'd like all my calendars reflected here

Any ideas?
The only way I've been able to do this (given that my employer will not allow my iPhone, etc. to connect to Exchange) is to have my primary calendar on my Google Calendar account be my work calendar, use the Google Calendar Sync application on my workstation at the office (always running) to sync from Outlook to Google (it supports only one calendar on Google's side, so whatever it chooses to sync with is your "primary" calendar and, thus, your work calendar), and sync my iPhone with my Google Calendars (see here).

It's not the most elegant solution, so I really hope someone posts something better that I can implement.  But so far it's working just fine syncing meetings from work to my phone (one way, I believe... never tried to schedule a meeting from the phone).