The GetSiteData method on the SPWeb returns all of the columns as datatype string. This does not appear to be documented anywhere. It is however the only single method that can query across lists.
CAML is a very weak query language. You can’t do much in the way of joins.