PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : نتایج جستجو و دستور select در دو تیبل در صورتی که تیبل دوم دارایی نتایج بیشتر باشه



amin8520
May 19th, 2019, 23:07
سلام ربات تلگرامی دارم که
در خصوص نمایش اطلاعات تیبل دوم
سوال داشتم

در رکورد تیبل 1 چندین رکورد در تیبل دوم وجود دارد
با استفاده از دستور JOINنتونستم به نتیجه برسم و در دستور SELECT پست های ارسالی به تعداد رکورد تیبل 2 تکرار میشه

لطفا راهنماایی کنید چطوری تمام نتایج تیبل 2 رو درون نتیجه جستجو و در یک پست ارسال کنم
امیدوارم متوجه منظورم شده باشد
مثال :

$connection = connect_to_db();


$result = $connection -> query("SELECT *
FROM TBL_1
LEFT JOIN TBL_2
ON TBL_1.id1=TBL_2.id2

WHERE TBL_1.name Like '%$text%'
limit 20 ");


if ($result) {
while($row = $result -> fetch_assoc()) {

$id1 = $row['id1'];
$name = $row['name'];
i
$kharid = $row['kharid'];




$reply ="$id1 $name $kharid ";
$url = $GLOBALS['bot_url']."/sendMessage";
$post_params = [ 'chat_id' => $GLOBALS['chat_id'] , 'text' => $reply , 'parse_mode' => 'Markdown' ];
send_reply($url, $post_params);

}
}

$connection -> close();

amin8520
May 20th, 2019, 20:18
مثال :

TBL_1




id1



name





1



محمد





2



حسین




3
محمد علی



TBL_2






kharid




id2







کفش




1






پیراهن




3






جوراب




1






تی شرت




1






کفش




2






مسواک





3






ریش تراش




1






شلوار




1






موبایل




1






هارد




2








با جستجو کلمه علی
میخوام علی و خریدش
و محمد علی با خریدش در دو پست مجزا نمایش داده بشه هر کدئم با خرید های خودشون






محمد

کفش - جوراب - تی شرت – ریش تراش – شلوار - موبایل












محمد علی




پیراهن – مسواک .







لطفا راهنمایی کنید / ممنون

rayanagostar
May 21st, 2019, 08:43
باید از group by استفاده کنید

Lithium
May 21st, 2019, 09:56
Left Join رو روی دو ستون متناظر باید قرار بدید.


ON TBL_1.id=TBL_2.id

- بنا به مثالی که زدید.

در کد کنونی شما فکر کنم روی Name تلاش کردید که Join کنید و خب این دو مقدار با هم برابر نیستند تا به شما خروجی مورد نیاز را بدهند.

amin8520
May 21st, 2019, 19:12
سپاس از پاسخ دوستان :x


join بین id ها انجام شده

مشکل من در حلقه (تکرار) باید باشه

به جایی نمایش به صورت دو پست زیر





محمد

کفش - جوراب - تی شرت – ریش تراش – شلوار - موبایل












محمد علی




پیراهن – مسواک .






به صورت زیر
و در چند پست نمایش داده میشه






محمد

کفش










محمد

جوراب











محمد

تی شرت











محمد

ریش تراش











محمد

شلوار











محمد

موبایل













محمد علی




پیراهن















محمد علی




مسواک

Lithium
May 22nd, 2019, 00:05
GROUP BY TBL_1.id

amin8520
May 22nd, 2019, 04:17
ممنون از پاسخ

نتیجه باز صحیح نیست (از تیبل دوم فقط یک مقدار برای نمایش وجود داره)

به صورت زیر شد





محمد


کفش















محمد علی

پیراهن

xwoman2
May 23rd, 2019, 06:39
درود
فکر نمی کنم چیزی که مد نظر شماست با یک کوئری انجام پذیر باشه چون شما می خواید به تعداد رکورد های یافت شده در جدول اول نتیجه داشته باشید.
یک کوئری بزنید روی جدول اول برای جستجو.بعد براش یک حلقه بنویسید که خرید ها رو به ازای هر نتیجه از جدول یک لیست کنه.

amin8520
May 23rd, 2019, 15:53
جهت اطلاع
و اینکه جواب سوال به دست امده رو عرض کنم ./


با دستور
group_concat
مشکلم حل شد

مثال



SELECT *
FROM tbl_1
LEFT JOIN (select group_concat(tbl_2.name_2) as name_2 , id_2 from tbl_2
group by id_2) tbl_2

ON tbl_2.id_2 = tbl_1.id