union return sperated rows .. so you have two values
coul be you need another join condition of a single query instead of a union between two queries
$select = (new yiidbQuery())
->select('autori.IDAutore
, autori.IParte
, autori.IIParte
, autori.Prefisso
, autori.Qualificazione
, count(autori.IDAutore) AS qta')
->from('autori')->where('1=1')
->innerJoin('bibliografie b', '
b.RIDAutorePrinc1 = autori.IDAutore OR b.RIDAutorePrinc2 = autori.IDAutore
')->limit(10)->orderby('COUNT(*) DESC');
if you have performance problem for a complex query you could try using pure sql and a sql command eg:
$connection = Yii::$app->db;
$q = " select t.IDAutore
, t.IParte
, t.IIParte
, t.Prefisso
, t.Qualificazione
, sum( num_autori)
from (
select autori.IDAutore
, autori.IParte
, autori.IIParte
, autori.Prefisso
, autori.Qualificazione
, count(autori.IDAutore) num_autori
from autori
inner join bibliografie b on b.RIDAutorePrinc1 = autori.IDAutore
order by num_autori
limit 10
union
select autori.IDAutore
, autori.IParte
, autori.IIParte
, autori.Prefisso
, autori.Qualificazione
, count(autori.IDAutore) num_autori
from autori
inner join bibliografie b on b.RIDAutorePrinc2 = autori.IDAutore
order by num_autori
limit 10
union
....
.....
....
select autori.IDAutore
, autori.IParte
, autori.IIParte
, autori.Prefisso
, autori.Qualificazione
, count(autori.IDAutore) num_autori
from autori
inner join bibliografie b on b.RIDAutorePrinc2 = autori.IDAutore
order by num_autori
limit 10 ) t
group by t.IDAutore
, t.IParte
, t.IIParte
, t.Prefisso
, t.Qualificazione"
$autoreListArray = $connection->createCommand($q)->queryAll();
$autoreListArray is an array with resulting list aggreagted by autore and with the sum of the single count in each select
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…