Join by field and labels to rows for multiple metrics vs single metric

Hi,
Is possible to create a table from these metrics? The problem here are mymetric2_size and mymetric4_read metrics, not sure, if there is some transformation that can dynamically create rows from labels from multiple timeseries. In general, outer join by field is working, but only for single mymetric2_size / mymetric4_read metric.

mymetric1_meta{id=foo,state=running} 1 
mymetric2_size{id=foo,disk=/sda} 20
mymetric2_size{id=foo,disk=/sdb} 128
mymetric3_meta{id=foo,name=bar} 1
mymetric4_read{id=foo,disk=/sda} 1234
mymetric4_read{id=foo,disk=/sdb} 4321
name | state | sda_size | sdb_size | sda_read | sdb_read |
----------------------------------------------------------
bar | running | 20 | 128 | 1234 | 4321 |

Thanks