منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة

اذهب الى الأسفل

كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة Empty كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة

مُساهمة من طرف أبوسجود الأحد مايو 12, 2013 3:14 pm

بسم الله الرحمن الرحيم
في بعض الأحيان نريد جلب بيانات معينة من عدة جدوال مختلفة .....لكن ربما ينقصنا الخبرة الكافية لبناء جملة SQL لاستخدامها فى الجمع بين البيانات التي تمتد جداول متعددة. ....لذلك سوف أناقش بعض من الأساليب المستخدمة بشكل بسيط لكيفية عمل ذلك.

الطريقة الاولى : أستخدام جملة SELECT

الكود:

SELECT table1.column1, table2.column2 FROM table1, table2 WHERE table1.column1 = table2.column1;

فى المثال السابق أستخدمنا جملة أستعلام بسيطة لاستخراج بيانات من جدولين table1 و table2 و استخدمنا نقطة تدوين (table1.column1) لتحديد أي جدول جاء العمود منه ...ويتم فصل الجداول بعد عبارة FROM بفواصل ...ثم حددنا الجدوال التى تحتوى على الاعمدة على التوالى و استخدمنا شرط معين وهو أن قيم العمود1 = قيم العمود 2 ......مثال :

الكود:
 Adodc1.RecordSource = "select info.name ,v1.Holiday_Type FROM info,v1 WHERE info.id =v1.id "
 Adodc1.CommandType = adCmdText
 Adodc1.Refresh
       
      If Adodc1.Recordset.RecordCount > 0 Then
      Set DataGrid1.DataSource = Adodc1
      Else
      MsgBox "لايوجد اجزءات "
       
        End If

فى المثال السابق قمت بعمل جملة استعلام بسيطة لجلب بيانات عمودين فى جدولين مختلفين ...العمود الاول هو name و الذى يحتوى على أسماء الموظفين فى جدول info ....العمود الثانى هو Holiday_Type و الذى يحتوى على أجازات الموظفين فى جدول v1 ...ووضع شرط أن يكون رقم id للموظف فى جدول info يساوى رقم id فى جدول v1 ....

و نتيجة هذا الاستعلام سيقوم بجلب أسماء جميع الموظفين من جدول info و أجازاتهم من جدول v1 ....كما يمكنك استخدام أكثر من شرط كما فى المثال التالى :
الكود:


SELECT table1.column1, table2.column2 FROM table1, table2 WHERE table1.column1 = table2.column1 AND table1.column2 = table2.column2;

يمكنك أن تشتمل جملة الاستعلام على العديد من الجداول و الحقول حسب الحاجة، على الرغم من أن بعض قواعد البيانات لديها حدود لما يمكنهم التعامل بكفاءة ...كما يمكنك استخدام جملة الاستعلام السابقة بهذا الشكل :

الكود:


SELECT column1, column2 FROM table1, table2 WHERE table1.column1 = table2.column1;

الطريقة الثانية : جملة select مع المعامل INNER JOIN

تلك الطريقة تقوم بجلب البيانات من جدوال مختلفة كالسابقة ولكنها تتميز عنها انك تستطيع ربط الجدولين بحلقين لهما نفس القيم مما يعطيك حرية اكبر فى الاستعلام ...مثال :

الكود:

SELECT table1.column1, table2.column2 FROM table1 INNER JOIN table2 ON table1.column1 = table2.column1; WHERE table1.column3 ='" & Trim(txt.Text) & "'


فلو لاحظت اننا قمنا بعملية تحديد السجلين بـ

الكود:

SELECT table1.column1, table2.column2

ثم حددنا الجدولين المستمد منهما هذين السجلين بتكوين العلاقة بينهما بالكود التالي

الكود:

FROM table1 INNER JOIN table2

ثم ربطنا الجدولين بحقلين الرقم على افتراض ان اسم الحقول الرقميه في الجدولين بالشكل التالي :

الكود:

ON table1.column1 = table2.column1


ثم وضعنا شرط البحث بحقل من الجدول test1 بناءً على القيمة الموجودة بداخل التيكست

الكود:

WHERE table1.column3 ='" & Trim(txt.Text) & "'


و النتيجة من هذا الاستعلام سيقوم بجلب بيانات الحقل column1 فى جدول table1 مع بيانات حقل
column1 من جدول table1
avatar
أبوسجود
......
......

تاريخ التسجيل : 18/02/2011
المساهمات : 101
النقاط : 187
التقيم : 8
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة Empty رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة

مُساهمة من طرف tryold الأربعاء مايو 15, 2013 6:45 pm

السلام عليكم



اخي ابو سجود لي الشرف ان اكون اول من يرد على موضوعك



سؤال



هل الجداول في قاعدة البيانات لازم تعمل لها علاقات اذا عملنا كود لربطها مع بعضها البعض اذا استخدمنا الطريقة الثانية ؟



اريد مثال على جلب معلومات من 3 جداول وعرضها في MSFlexGrid1 بدل الداتا قريد وتحت رقم الموظف والتعديل والاضافة والحذف كله من خلال الحقول التي امامي



لقد استفدت من موضوعك وهو مهم للتنقل بين الجداول وان شاء الله يستفيد منه كل اعضاء المنتدى الموقر



وفقك الله ونفع بعلمك

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ


ليس من اخترق جهاز اصبح هكر

وليس من كتب كود اصبح مبرمج

وليس من كسر برنامج صار خيبير كسر

ولكن من تواضع لله رفعة

tryold
tryold
...
...

تاريخ التسجيل : 06/04/2013
المساهمات : 37
النقاط : 47
التقيم : 2
الدولة : السعودية
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة Empty رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة

مُساهمة من طرف أبوسجود الخميس مايو 16, 2013 11:20 am



اخي ابو سجود لي الشرف ان اكون اول من يرد على موضوعك

اهلا وسهلا بك أخى الكريم ...بل يشرفنى انك مرورك على المشاركة


الكود:
هل الجداول في قاعدة البيانات لازم تعمل لها علاقات اذا عملنا كود لربطها مع بعضها البعض اذا استخدمنا الطريقة الثانية ؟

سواء كانت الطريقة الاولى أو الطريقة الثانية فإن العلاقات بين الجدوال ليست شرط فى الاستعلام بالكود من خلال الفجوال بيسك ...وانما لها اهمية فى انشاء استعلامات من خلال قاعدة البيانات ذاتها ....هذا طبعا على حد علمى .



الكود:


اريد مثال على جلب معلومات من 3 جداول وعرضها في MSFlexGrid1 بدل
الداتا قريد وتحت رقم الموظف والتعديل والاضافة والحذف كله من خلال الحقول
التي امامي


مثال : على أفتراض أن الثلاث جدوال هم info , v1 ,v2 ....ونريد جلب الحقل name من الجدول inof وVkind من الجدول v1 وحقل Vkind من الجدول v2 اذن المثال سيكون على النحو التالى :

الكود:
Dim c As Integer
Dim flxgd_row As Integer
Dim field_wid As Integer

Dim sql As String
Dim rs As New ADODB.Recordset

sql = "select V1.Vkind, V2.Vkind, [info.name] from v1 , v2, info "
rs.Open sql, B, adOpenKeyset, adLockOptimistic


    MSFlexGrid1.Rows = 2
    MSFlexGrid1.FixedRows = 1
    MSFlexGrid1.FixedCols = 0

   
    MSFlexGrid1.Rows = 1
    MSFlexGrid1.Cols = rs.Fields.Count
    ReDim col_wid(0 To rs.Fields.Count - 1)

    For c = 0 To (rs.Fields.Count - 1)
              MSFlexGrid1.TextMatrix(0, c) = rs.Fields(c).Name
              col_wid(c) = TextWidth(rs.Fields(c).Name)
    Next c

   
    flxgd_row = 1

    Do While Not rs.EOF
          MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1

          For c = 0 To (rs.Fields.Count - 1)

              MSFlexGrid1.TextMatrix(flxgd_row, c) = _
              Format(rs.Fields(c).Value, ".      ")

             
              field_wid = TextWidth(rs.Fields(c).Value)
              If col_wid(c) < field_wid Then col_wid(c) = field_wid

          Next c

          rs.MoveNext
          flxgd_row = flxgd_row + 1

    Loop
avatar
أبوسجود
......
......

تاريخ التسجيل : 18/02/2011
المساهمات : 101
النقاط : 187
التقيم : 8
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة Empty رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة

مُساهمة من طرف أبوسجود الخميس مايو 16, 2013 11:22 am

طبعا الكود السابق فقط لملىء FlexGrid بنتيجة البحث ....اما كيفية الحذف و التعديل والاضافة من خلال الاداة FlexGrid ...سأحاول ابعت لك كود فيما بعد
avatar
أبوسجود
......
......

تاريخ التسجيل : 18/02/2011
المساهمات : 101
النقاط : 187
التقيم : 8
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة Empty رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة

مُساهمة من طرف tryold الخميس مايو 16, 2013 12:56 pm

اهلا اخوي ابو سجود ويعطيك العافية



طيب اذا وضعت اكثر من جدول في sql ماذا يحدث



جرب تضيف ثلاث جداول بحقولهم على الجدولين السابقين وشوف ما يحدث ؟



وهل اذا عملت جدول اخرى واردت ان اضمه معهم لازم اعمل له حقل بأسم name



الا يكفي حقل التعريف حقة اللي هو ID



المناقشة معك اخي ممتعة ومفيدة بارك الله فيك وفي والديك وجعلك ممن يكسب رضاهم



انتظر ردك



اخوك ابو فارس

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ


ليس من اخترق جهاز اصبح هكر

وليس من كتب كود اصبح مبرمج

وليس من كسر برنامج صار خيبير كسر

ولكن من تواضع لله رفعة

tryold
tryold
...
...

تاريخ التسجيل : 06/04/2013
المساهمات : 37
النقاط : 47
التقيم : 2
الدولة : السعودية
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة Empty رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة

مُساهمة من طرف أبوسجود الإثنين مايو 20, 2013 8:13 am

tryold كتب:اهلا اخوي ابو سجود ويعطيك العافية


اخوك ابو فارس


أهلا وسهلا بيك أخى الكريم أبو فارس .....


الكود:

طيب اذا وضعت اكثر من جدول في sql  ماذا يحدث

 

جرب تضيف ثلاث جداول بحقولهم على الجدولين السابقين  وشوف ما يحدث ؟


المثال
الذى قد ارستله اليك فيه استعلام من ثلاث جدوال وهم v1 , v2, info
.....وكما اننى قد قرأت ان هناك بعض قواعد البيانات التى تحدد عدد الجدوال
التى يمكن استخدامها فى الاستعلام ولا اعرف صراحة ما هو عدد الجدوال فى
قاعدة بيانات اكسس التى يمنك استخدامها فى استعلام


الكود:
وهل اذا عملت جدول اخرى واردت ان اضمه معهم لازم اعمل له حقل بأسم name 

 
الا يكفي حقل التعريف حقة اللي هو ID

لا
يا اخى الفاضل ليس شرطا .....وكل ما هنالك أنك اذا اردت أن تجلب بيانات
حقل معين لابد أن يكون هذا الحقل موجود فى الاستعلام وموجود فى قاعدة
البيانات .....سواء إن كان هذا الحقل name او id أو أى مسمى أخر ....مع
ملاحظة أن الحقول النصية من الافضل استخدام القوس [] فى الاستعلام حتى تسهل
عملية قراءة بيانات الجدول


الكود:

المناقشة معك اخي ممتعة ومفيدة بارك الله فيك وفي والديك وجعلك ممن يكسب رضاهم

 

انتظر ردك

 

بارك الله فيك يا ابو فارس ...دا أنا اللى استفدت من المناقشة معك .....و أرجوا المعذرة فى غيابى كل تلك الفترة
avatar
أبوسجود
......
......

تاريخ التسجيل : 18/02/2011
المساهمات : 101
النقاط : 187
التقيم : 8
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة Empty رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة

مُساهمة من طرف torky1985 الأربعاء يونيو 05, 2013 9:12 pm

انا بصراحه بشكرك ع المجهود لكن انا اختلط عليا الامر شويه انا مبتداء وبتعامل بطريقة الربط العاديه للاكسسيس بعد تحويله الى 79
وبربطه باداه data1
مش بتسخدم الADO للاسف
وانا ارفت مثالى ومحتاج فيه هو عرض بانات جدولين فى اداة داتا جريد واحده بس
وعند البحث عن اسم تاتى النتائج من جدولين داخل اداه داتا جريد واحده
مش عارف ده ينفع ولا لاء ياريت تساعدنى من داخل المثال الى ارفقته وإاليك ولك جزيل الشكر
ولأحمد متاع صاحب الفضل الكبير لى
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
torky1985
torky1985
.....
.....

تاريخ التسجيل : 25/05/2013
المساهمات : 82
النقاط : 115
التقيم : 1
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة Empty رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة

مُساهمة من طرف NEXT الجمعة ديسمبر 18, 2015 9:10 am

للرفع

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة Do.php?imgf=154090993464951
NEXT
NEXT
الادارة
الادارة

تاريخ التسجيل : 18/02/2011
المساهمات : 446
النقاط : 200660
التقيم : 28
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة Empty رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة

مُساهمة من طرف torky1985 السبت ديسمبر 19, 2015 9:56 am

دى جمله select ...وانا محتاج جمله update
محتاج اعمل تعديل ف الجدول الاول والجدول الثانى بنفس الوقت
torky1985
torky1985
.....
.....

تاريخ التسجيل : 25/05/2013
المساهمات : 82
النقاط : 115
التقيم : 1
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى