انتخاب چند رکورد از هر گروه

ساخت وبلاگ
سلام
سه جدول زیر رو در نظر بگیرید

tbl_country
name ____  id
1 _______un
2 ________ir
3 _______uk


tbl_city

name _______  id_country ____  id
1_____________1 __________c1
2_____________1 __________c2
3_____________1 __________c3
4_____________1 __________c4
5_____________1 __________c5
6_____________2 __________c6
7_____________2 __________c7
8_____________2 __________c8
9_____________2 __________c9
10____________2 __________c10
11____________3 __________c11
12____________3 __________c12
13____________3 __________c13
14____________3 __________c14
15____________3 __________c15


tbl_address
این جدول 45 سطر دارد

name ______  id_country _______ id_city ____  id
add_1 _________  1 _______________ 1 ______  1
add_2 _________  1 _______________ 1 ______  2
add_3 _________  1 _______________ 1 ______  3
add_4 _________  1 _______________ 1 ______  4
add_5 _________  1 _______________ 1 ______  5
add_6 _________  2 _______________ 1 ______  6
add_7 _________  2 _______________ 1 ______  7
add_8 _________  2 _______________ 1 ______  8
add_9 _________  2 _______________ 1 ______  9
add_10 _________  2 _______________ 1 _____  10
add_11 _________  3 ______________ 1 ______  11
add_12 _________  3 ______________ 1 ______  12
add_13 _________  3 ______________ 1 ______  13
add_14 _________  3 ______________ 1 ______  14
add_15 _________  3 ______________ 1 ______  15

add_16 _________  1 _______________ 2 ______  16
add_20 _________  1 _______________ 2 ______  20

add_21 _________  1 _______________ 3 ______  21
add_30 _________  1 _______________ 3 ______  25

add_26 _________  2 _______________ 2 ______  26
add_30 _________  2 _______________ 2 ______  30

add_31 _________  2 _______________ 3 ______  31
add_35 _________  2 _______________ 3 ______  35

add_36 _________  3 _______________ 2 ______  36
add_40 _________  3 _______________ 2 ______  40

add_41 _________  3 _______________ 3 ______  41
add_45 _________  3 _______________ 3 ______  45


سوال : قسمت اول (مهمترین بخش)
میخوایم از حدول ادرس ، از هرگروه کشور که مثلا کد شهرش1 هست ، سه سطر انتخاب کنیم . مثلا به جدول زیر برسیم

id_city احتمالا WHERE میخوره 
ولی برای id_country نمیدونم چیکار کنم از group by _ limit 3 هم نتیجه نگرفتم 
برای نمایش نام هر شهر و کشور بجای id هم فکر کنم از inner join  استفاده کنیم ایا بهینه است

tbl_result

name ______  id_country _______ id_city ____  id

add_1 _________  1 _______________ 1 ______  1

add_2 _________  1 _______________ 1 ______  2

add_3 _________  1 _______________ 1 ______  3

add_6 _________  2 _______________ 1 ______  6

add_7 _________  2 _______________ 1 ______  7

add_8 _________  2 _______________ 1 ______  8

add_11 ________  3 _______________ 1 ______  11

add_12 ________  3 _______________ 1 ______  12

add_13 ________  3 _______________ 1 ______  13



قسمت دوم این انتخاب با توجه به شرط اولیه (از هرگروه سه تا) به صورت رندم باشد یعنی احتمال نمایش ادرسی با نام add_5 هم وجود داشته باشد

-
ممنون میشم بهینه ترین راه حل رو بفرمایید
با تشکر Heart

- - , .

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : خنجی prog بازدید : 138 تاريخ : يکشنبه 9 اسفند 1394 ساعت: 4:28

خبرنامه