perhaps, with a little fudging

Code:
mysql> select cID,val_timestamp,val_char,NULL as val_float,NULL as val_int from y1 where bID = 1 union  select cID,val_timestamp,NULL,val_float,NULL from y2 where bID = 1 union select  cID,val_timestamp,NULL,NULL,val_int from y3 where bID = 1 order by cID;
+------+---------------------+----------+-----------+---------+
| cID  | val_timestamp       | val_char | val_float | val_int |
+------+---------------------+----------+-----------+---------+
|    1 | 2009-12-14 00:00:00 | qqqq     |      NULL |    NULL |
|    1 | 2009-12-14 00:00:00 | NULL     |       5.5 |    NULL |
|    1 | 2009-12-14 00:00:00 | NULL     |      NULL |       9 |
|    2 | 2009-12-14 00:11:22 | xxx      |      NULL |    NULL |
|    4 | 2009-12-14 00:33:44 | NULL     |      NULL |      42 |
|    7 | 2009-12-14 00:22:33 | NULL     |      1.95 |    NULL |
+------+---------------------+----------+-----------+---------+
6 rows in set (0.00 sec)