PDA

View Full Version : سوال: چطور می تونم اطلاعات دو جدول رو همزمان بیرون بکشم؟



idocsidocs
چهارشنبه 13 اردیبهشت 1391, 12:59 عصر
من توی یه جدول اطلاعات مربوط به کاربر رو نگه داری می کنم و توی یه جدول دیگه اطلاعات سفارشات رو نگه می دارم.

توی این دو جدول فیلد آی دی کاربر وجود داره.

چطور می تونم اطلاعات این دو جدول رو بیرون بکشم و نمایش بدم؟

Hamid.RDN
چهارشنبه 13 اردیبهشت 1391, 13:03 عصر
دو تا حالت داری
۱ - هر دو جدول رو بخونی
۲- از Join استفاده کنی

SELECT *
FROM <firstTable> a INNER JOIN <anotherTable> b
USING(<columnName>)

idocsidocs
چهارشنبه 13 اردیبهشت 1391, 14:16 عصر
از جدولی که اطلاعات کاربر رو ذخیره می کنه فقط یک ردیف باید بخونم و از جدولی که اطلاعات سفارشات رو ذخیره می کنه باید همه سفارشات رو بخونم.

دراین مورد چه نوع کوئری بنویسم که سرعت بیشتری داشته باشه و کار مورد نظر من رو هم انجام بده؟

Net So
چهارشنبه 13 اردیبهشت 1391, 14:45 عصر
SELECT * FROM Table1 , Table2 WHERE (Table1.ID = Table2.ID) ....

فکر میکنم واضح هست. اگر یه فیلد تو هر 2 جدول با نام یکسان داری ( مثلا به فیلد به نام ID تو هر دو جدول داری ) از Table.SameFieldName استفاده کن.
اینطور که به نظر میرسه شما میخوای با یه پارامتر از یه کاربر ، فرضا ID شو پیدا کنید ( از جدول اول = جدول کاربران ) و با ID اون از جدول دوم ، لیست سفارشاتی که اون ID سفارش داده. درسته ؟

Hamid.RDN
چهارشنبه 13 اردیبهشت 1391, 14:56 عصر
خوب این یک join طبیعی هسته که با کد زیر پیاده سازی میشه:
SELECT ProductsTable.*, UsersTable.id FROM UsersTable,ProductsTable WHERE ProductsTable.id = UsersTable.id AND UsersTable.id =1
در این کد ما تمام محصولات کاربر شماره ۱ رو نمایش دادیم

djsaeedkhan
چهارشنبه 13 اردیبهشت 1391, 16:46 عصر
خوب این یک join طبیعی هسته که با کد زیر پیاده سازی میشه:
SELECT ProductsTable.*, UsersTable.id FROM UsersTable,ProductsTable WHERE ProductsTable.id = UsersTable.id AND UsersTable.id =1
در این کد ما تمام محصولات کاربر شماره ۱ رو نمایش دادیم
من همین کد رو قبلا از استادم پرسیده بودم ایشون گفتن ابتدا دو جدول با هم جوین میشن و بعد شرط لحاظ میشه. به همین دلیل با اینکه جدول ،نتیجه جدول درستی خواهد داشت ولی بهینه نیست. مخصوصا زمانی که جدول ها پر پیمونه باشن.
و هنوز برای من سوال هست که چگونه جداول را جوری جوین کنیم که شرط اول لحاظ بشه؟

Hamid.RDN
چهارشنبه 13 اردیبهشت 1391, 19:03 عصر
خیر دوست عزیز شرط آخر مانع از بروز همچین حالتی میشه و تمام جداول join نمیشن. این بهینه ترین حالت ممکن هست.