PDA

View Full Version : SQL



vahidqara
شنبه 04 مرداد 1393, 19:11 عصر
سلام و درود .. متاسفانه این سوال در بخش مربوطه پرسیدم ولی کسی جواب نداد گفتم بد نیست اینجا مطرح کنم شاید کسی بتونه کمک کنه .. مچکرم


من یه سوال فنی داشتم :لبخندساده:
من سه جدول category و post و جدول واسط این ها categorypost
که رابطه چند به چند است..
حال میخوام تمای مجموعه هارو با تعداد محدود مطلب برگردانم و نمایش بدم..
مثال

1-Javascript
1-1-JQuery
1-2-Plugin
2-Html
2-1-Html5
2-2-Html4
, .....

azowghi
شنبه 04 مرداد 1393, 21:42 عصر
سلام
بیشتر توضیح میدین؟

چی خروجی میخواین بگیرین؟

vahidqara
شنبه 04 مرداد 1393, 22:02 عصر
واضح تر از این دوست خوب :لبخندساده:

هر مجموعه ای که وجود دارد با تعداد محدودی مثلا هر مجموعه دو یا سه تا مطلب مربوط به اون مجموعه

azowghi
شنبه 04 مرداد 1393, 22:19 عصر
اول یه سوال:
جدول سوم categorypost اضافه است به نظر
شما میتونید یک فیلد کلید خارجی بدین به post

از این دستور استفاده کنید:

SELECT c.cat_id, GROUP_CONCAT(p.post_id ORDER BY p.cat_id DESC) grouped_post_id
FROM post as p, category as c
where
c.cat_id = p.cat_id
GROUP BY c.cat_id

azowghi
شنبه 04 مرداد 1393, 22:24 عصر
اینم برای limit دادن:

SELECT c.cat_id, substring_index(GROUP_CONCAT(p.post_id ORDER BY p.cat_id DESC ),',','3') grouped_post_id
FROM post as p, category as c
where
c.cat_id = p.cat_id

GROUP BY c.cat_id

vahidqara
شنبه 04 مرداد 1393, 22:25 عصر
نه نه اضافه نیست جدول واسط هست و باید باشه دوست عزیز .. رابطه چند به چند است نه یک به چند..

vahidqara
شنبه 04 مرداد 1393, 22:30 عصر
مچکرم دوست عزیز میشه یکم واضح تر دستورات و بگید!!! و اینکه نمیشه دو تا کارو تو یه دستور بنویسیم؟

azowghi
شنبه 04 مرداد 1393, 22:35 عصر
اولا شما میخواین بگین توی یه دسته بندی چندین پست هست و هر پستی میتونه چندین دسته بندی داشته باشه؟؟
آره اگر اینه که بله درست میگین

این کد برای دو تا جدول هست اومدم join زدم و بر اساس دسته بندی های موجود post ها رو پیدا کردم و توی یه فیلد انداختم ( که این کار آخر رو group_concat میکنه)

vahidqara
شنبه 04 مرداد 1393, 22:42 عصر
بله 100% من منظورم اینه .. چند به چند ...

azowghi
شنبه 04 مرداد 1393, 22:45 عصر
خب اینطوری کار راحت تره ما دیگه با یه جدول کار داریم

همون رو برای یک جدول میشه انجام داد

SELECT cat_id, substring_index(GROUP_CONCAT(post_id ORDER BY cat_id DESC ),',','3') grouped_post_id
FROM categorypost

GROUP BY cat_id

vahidqara
شنبه 04 مرداد 1393, 22:53 عصر
نه دوست خوب اینجوری نمیشه ولی بازم مچکرم که وقت گذاشتی..

hamedarian2009
یک شنبه 05 مرداد 1393, 12:57 عصر
http://stackoverflow.com/questions/2052333/single-sql-query-on-many-to-many-relationship

vahidqara
دوشنبه 06 مرداد 1393, 12:22 عصر
فکر کنم باید join بزنی ...

درود .. بله میدونم یه join تو در تو هم هست ولی هنوز کشفش نکردم :لبخندساده:

vahidqara
سه شنبه 07 مرداد 1393, 18:39 عصر
شاید منظور شما union باشه ؟! والله من که ایراد کار شما رو متوجه نشدم , متاسفانه :لبخندساده:

فدات من ایرادی ندارم فقط درخواست یه کوئری کردم همین