نمایش نتایج 1 تا 7 از 7

نام تاپیک: کوئری گرفتن از چند جدول

  1. #1
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    جنوب عشق است
    پست
    1,557

    کوئری گرفتن از چند جدول

    سلام دوستان.
    یک جدول داریم مثلا دوتا فیلد داره
    user_id,post_id
    با فرض مقادیر زیر
    30,55
    30,58
    20,99
    20,56
    حالا یک جدول داریم که اطلاعات پست ها داخلش هست
    با فیلد های زیر
    post_id,subject
    خوب حالا ما میخوام اطلاعات رو از جدول اول بر اساس ایدی کاربر فیلتر کنیم مقلا بر اساس شماره 30
    خروجی میشه 55و58
    حالا میخوام بر اساس شماره 30 که فیلتر کردم اطلاعات پست ها هم به خروجی بده یعنی اگر ما فیلتر کردیم و خروجی شد 55و58 اطلاعات پست هایی که هم پست ایدی های اونا توی جدول دوم 55و58 هست به خروجی بره
    اما چطور ؟

  2. #2
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: کوئری گرفتن از چند جدول

    دوست عزیز خیلی ساده join کنید :
    select t2.post_id,t2.subject from userposts t1 inner join posts t2 on t1.post_id = t2.post_id where t1.user_id = 30

  3. #3
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    جنوب عشق است
    پست
    1,557

    نقل قول: کوئری گرفتن از چند جدول

    ببخشین میشه یکم واضح تر کد رو بنویسین ؟ ممنون میشم

  4. #4
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    جنوب عشق است
    پست
    1,557

    نقل قول: کوئری گرفتن از چند جدول

    حقیقتش بنده زیاد این کوئری رو نمیتونم درک کنم.ممکنه یکم واضح تر بنویسین

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    اسفند 1391
    محل زندگی
    شیراز
    پست
    91

    نقل قول: کوئری گرفتن از چند جدول

    نقل قول نوشته شده توسط Unique مشاهده تاپیک
    دوست عزیز خیلی ساده join کنید :
    select  t2.post_id,t2.subject from userposts t1 inner join posts t2 on  t1.post_id = t2.post_id where t1.user_id = 30
    این دستور کاملا درسته
    شرح کد بالا اینه که ما دو تا جدول داریم . اسم جدول userpostsمی ذاریم t1 و اسم جدول postsمی ذاریم t2
    با استفاده از دستور join ساختاری شبیه یک جدول ثانویه ایجاد می شه که در هر سطر 4 ستون داره :
    userposts.user_id userposts.post_id posts.post_id posts.subject
    در واقع دو جدول بالا به نحوی در هم ضرب می شن (join) و سطر هایی که دارای post_id یکسان هستند کنار هم گذاشته شده اند این کار این قسمت کد انجام می ده : on t1.post_id = t2.post_id
    بعد هم یک شرط قائل می شیم
    where t1.user_id = 30

  6. #6
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    جنوب عشق است
    پست
    1,557

    نقل قول: کوئری گرفتن از چند جدول

    ساده تر نمیشه نوشت ؟
    این t1,t2 منو گیج کرده
    مگر جدول posts رو نذاشتیم t2
    join posts t2
    خوب این چه مفهومی داره ! دوبار اسم جدول تکرار بشه

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    اسفند 1391
    محل زندگی
    شیراز
    پست
    91

    نقل قول: کوئری گرفتن از چند جدول

    این دیگه ساده ترین حالتش هست :
    select  posts.post_id, subject from userposts inner join posts on  userposts.post_id = posts.post_id where user_id = 30



    دقت کنید که وقتی در دو جدول فیلد با اسم یکسان وجد داشته باشه از اسم جدول قبل از اسم فیل استفاده می شه تا مشخص بشه اون فیلد مال کدوم جدوله مثل فیلد post_id
    که در کد بالا posts.post_id استفاده شده برای مشخص کردن فیلد post_id از جدول posts و
    userposts.post_id استفاده شده برای مشخص کردن فیلد post_id از جدول userposts

تاپیک های مشابه

  1. کوئری گرفتن از چند جدول
    نوشته شده توسط hashemi85sep در بخش T-SQL
    پاسخ: 15
    آخرین پست: یک شنبه 08 بهمن 1391, 06:37 صبح
  2. کوئری گرفتن از یک جدول با مکانیزم tree
    نوشته شده توسط oliya24 در بخش T-SQL
    پاسخ: 1
    آخرین پست: سه شنبه 07 شهریور 1391, 20:11 عصر
  3. کوئری گرفتن از این جدول
    نوشته شده توسط seniamail در بخش SQL Server
    پاسخ: 6
    آخرین پست: یک شنبه 07 آذر 1389, 08:09 صبح
  4. کوئری گرفتن از دو جدول در 2 بانک اکسس
    نوشته شده توسط khoshblagh در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 2
    آخرین پست: یک شنبه 02 آبان 1389, 06:55 صبح
  5. کوئری گرفتن از این جدول
    نوشته شده توسط seniamail در بخش SQL Server
    پاسخ: 9
    آخرین پست: شنبه 10 مرداد 1388, 08:23 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •