درود ببینید
من با yii کار نمیکنم ولی تفاوت آنچنانی ندارند با فریمورک مطبوع من
پس کدهایی که میدم لزوما براساس تکمیل نیاز شماست و نمیدونم بهینه هستند یا نه اما بشکل زیر:
1. آی دی همه یوزرهایی که با کاربر شما یک دوست هستند بدست میارید
2. این آرایه رو تبدیل میکنید به یک رشته
3. باز یک کوئری میزنید و دوستان اونا رو پیدا میکنید.
4.این آرایه رو با آرایه اول مرج میکنید
5.یونیک میکنید تا دوستان تکراری حذف شوند
6.مجموع آرایه میشه کل دوستان و دوستان دوستان
کد PHP:
$friend_id= Yii::app()->db->createCommand("select id from all where fid=1")->queryScalar();
$ids=implode($friend_id, ',');
$friend_id2=Yii::app()->db->createCommand("SELECT id FROM all WHERE fid IN ({$ids})")->queryScalar();
$count_all=count(array_unique(array_merge($friend_id,$friend_id2)));
این برای دو مرحله بود اگر بخوایید دوستان دوستان اونا رو هم پیدا کنید باید اینقدر کوئری بزنید و هی بررسی کنید تا جایی که نتیجه بشه نال
این دیتا بیس منطقی نیست
و طراحی این دیتابیس ها هم چیزی نیست اینجا گفته بشه چون راه های مختلفی هست براش هم در یک تبیل واحد هم در دو تیبل
و صد البته با استفاده از نو اسکیو ال یا مای اسکیو ال ورژن 5.7 به بالا و کمک گرفتن از تایپ جیسون
موفق باشید