اتصال چند جدول بانک اطلاعاتی به یکدیگر
سلام،استاد من یه دیتا بانک دارم که شامل چندین جدوله و یه اکتیویتی دارم که چندین دکمه دارد مشخص کننده مطالب برنامه اس میخوام وقتی روی یکی ا این دکمه ها تاچ شد لیست من فقط موضوعات همون رو نشون بده و در ضمن با یه جدول درست کار میکنه چند جدول میشه جواب نمیده .
سلام
طبق توضیحی که دادید باید چند جدول داشته باشید.
مشکلی هم در استفاده از چند جدول وجود نداره فقط کافی توی query هاتون اسم جدول رو عوض کنید.
با سلام
راه دوم هم اینه :
اگر جداول شما در تمامی موضوعات به جز گروه مشترکه میتونید یک جدول ساخته و برای هر گروه یک id اختصاص بدید . بعد هنگام جستجو کافیه یک where در عبارت sql خودتون اضافه کرده و جستجوتون رو انجام بدید.
مثال :
Select * from YourTable Where GroupId=1
بذارید من جواب دوستان رو شفاف تر کنم.
ببین شما در بانک های اطلاعات می تونید Query بگیرید که میشه هم باهاش داده درج کرد، هم داده حذف کرد، هم گزارش گرفت و فیلتر کرد، هم جدول ها رو به هم چسبوند و ... که هر کدام Syntax خاص خودشون رو دارن. برای خوندن اطلاعات از SELECT استفاده میشه که می تونه یک یا چند جدول رو بگیره اما در حالت چند جدوله بهتر هست که از JOIN استفاده بشه.
فرض کن یک بانکی داری به اسم «افراد» که شامل یک کد انحصاری برای هر فرد و نام و نام خانوادگیش هست.
حالا همین افراد ( هر فرد خاص ) می تونه ده ها تلفن و آدرس داشته باشد پس منطقی نیست که به ازای هر فرد در این جدول یک بار دیگه نام و نام خانوادگیش تکرار بشه. بلکه بهتر هست یک جدول دیگه به اسم «تلفن ها» داشته باشیم که به ازار هر کد مشخص از هر فرد مشخص، اطلاعات تلفن و آدرس در اون ذخیره شده. به این ترتیب داریم:
Table Name: person
| another fields | family | name | pid |
| another fields 1 | some family 1 | some name 1 | 1 |
| another fields 2 | some family 2 | some name 2 | 2 |
Table Name: contact
| location | address | tel | person_pid | pid |
| home | address 1 for person 1 | tel 1 for person 1 | 1 | 1 |
| office | address 2 for person 1 | tel 2 for person 1 | 1 | 2 |
حالا یک QUERY می نویسیم به این شکل
SELECT
person.*,
contact.tel,
contact,location
FROM person
LEFT OUTER JOIN contact ON person.pid=contact.person_pid
WHERE person.pid=1
به این ترتیب می دو سطر برات لیست میشه که داخلش این فیلدها وجود داره:
همه فیلدهای person + فیلد tel, location از Contact ( که می تونه این هم * باشه ). حالا دو تا جدول به هم چسبیده و اطلاعات فرد با کد 1 رو از هر دو جدول ادغام کرده.
می تونی بجای LEFT OUTER JOIN از خیلی چیزها مثل JOIN, INNER JOIN و ... استفاده کنی که بسته به خواستت داره. برای دیدن تفاوت JOIN ها از لینک زیر استفاده کن:
http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .