<?php
// $mysqli is already declared as a working database connection by this sandbox
$portfolios = [
'ALFA01',
'BETA02',
'GAMMA03',
'DELTA04',
'EPSILON05',
'ZETA06',
];
$placeholders = implode(',', array_fill(0, count($portfolios), '?'));
$sql = <<<SQL
SELECT data.id,
`char`,
numb,
values_table.id_num2 AS val
FROM data_table AS data
JOIN (
SELECT 1 AS typ_num, id_num1, id_num2 FROM values_table01
UNION
SELECT 2 AS typ_num, id_num1, id_num2 FROM values_table02
UNION
SELECT 3 AS typ_num, id_num1, id_num2 FROM values_table03
) AS values_table
ON (values_table.typ_num = data.typ1 AND values_table.id_num1 = data.id)
OR (values_table.typ_num = data.typ2 AND values_table.id_num1 = data.id)
OR (values_table.typ_num = data.typ3 AND values_table.id_num1 = data.id)
WHERE CONCAT(`char`,numb) IN ($placeholders)
SQL;
$result = [];
foreach ($mysqli->execute_query($sql, $portfolios) as $row) {
$result[$row['id']][] = $row['val'];
}
var_export($result);