<?php
$portfolios = [
'ALFA01',
'BETA02',
'GAMMA03',
'DELTA04',
'EPSILON05',
'ZETA06',
];
$placeholders = implode(',', array_fill(0, count($portfolios), '?'));
$sql = <<<SQL
SELECT data.id,
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.id_num1 = data.id
AND (
(values_table.typ_num = 1 AND data.typ1 = 1)
OR (values_table.typ_num = 2 AND data.typ2 = 1)
OR (values_table.typ_num = 3 AND data.typ3 = 1)
)
WHERE CONCAT(`char`,numb) IN ($placeholders)
SQL;
$result = [];
foreach ($mysqli->execute_query($sql, $portfolios) as $row) {
$result[$row['id']][] = $row['val'];
}
var_export($result);