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)