حلقه (تکرار) و نتایج جستجو و دستور select در دو تیبل در صورتی که تیبل دوم دارایی نتایج بیشتر باشه
سلام ربات تلگرامی دارم که
در خصوص نمایش اطلاعات تیبل دوم
سوال داشتم
در رکورد تیبل 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();
پاسخ : نتایج جستجو و دستور select در دو تیبل در صورتی که تیبل دوم دارایی نتایج بیشتر باشه
مثال :
TBL_1
id1
|
name
|
1
|
محمد
|
2
|
حسین
|
3 |
محمد علی |
TBL_2
با جستجو کلمه علی
میخوام علی و خریدش
و محمد علی با خریدش در دو پست مجزا نمایش داده بشه هر کدئم با خرید های خودشون
محمد کفش - جوراب - تی شرت – ریش تراش – شلوار - موبایل |
محمد علی
پیراهن – مسواک .
|
لطفا راهنمایی کنید / ممنون
پاسخ : نتایج جستجو و دستور select در دو تیبل در صورتی که تیبل دوم دارایی نتایج بیشتر باشه
باید از group by استفاده کنید
پاسخ : نتایج جستجو و دستور select در دو تیبل در صورتی که تیبل دوم دارایی نتایج بیشتر باشه
Left Join رو روی دو ستون متناظر باید قرار بدید.
- بنا به مثالی که زدید.
در کد کنونی شما فکر کنم روی Name تلاش کردید که Join کنید و خب این دو مقدار با هم برابر نیستند تا به شما خروجی مورد نیاز را بدهند.
پاسخ : نتایج جستجو و دستور select در دو تیبل در صورتی که تیبل دوم دارایی نتایج بیشتر باشه
سپاس از پاسخ دوستان :x
join بین id ها انجام شده
مشکل من در حلقه (تکرار) باید باشه
به جایی نمایش به صورت دو پست زیر
محمد کفش - جوراب - تی شرت – ریش تراش – شلوار - موبایل |
محمد علی
پیراهن – مسواک .
|
به صورت زیر
و در چند پست نمایش داده میشه
پاسخ : نتایج جستجو و دستور select در دو تیبل در صورتی که تیبل دوم دارایی نتایج بیشتر باشه
پاسخ : نتایج جستجو و دستور select در دو تیبل در صورتی که تیبل دوم دارایی نتایج بیشتر باشه
ممنون از پاسخ
نتیجه باز صحیح نیست (از تیبل دوم فقط یک مقدار برای نمایش وجود داره)
به صورت زیر شد
پاسخ : نتایج جستجو و دستور select در دو تیبل در صورتی که تیبل دوم دارایی نتایج بیشتر باشه
درود
فکر نمی کنم چیزی که مد نظر شماست با یک کوئری انجام پذیر باشه چون شما می خواید به تعداد رکورد های یافت شده در جدول اول نتیجه داشته باشید.
یک کوئری بزنید روی جدول اول برای جستجو.بعد براش یک حلقه بنویسید که خرید ها رو به ازای هر نتیجه از جدول یک لیست کنه.
پاسخ : نتایج جستجو و دستور select در دو تیبل در صورتی که تیبل دوم دارایی نتایج بیشتر باشه
جهت اطلاع
و اینکه جواب سوال به دست امده رو عرض کنم ./
با دستور
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