كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة
صفحة 1 من اصل 1 • شاطر
كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة
بسم الله الرحمن الرحيم
في بعض الأحيان نريد جلب بيانات معينة من عدة جدوال مختلفة .....لكن ربما ينقصنا الخبرة الكافية لبناء جملة 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
أبوسجود- ......
- تاريخ التسجيل : 18/02/2011
المساهمات : 101
النقاط : 187
التقيم : 8
الجنس :
رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة
السلام عليكم
اخي ابو سجود لي الشرف ان اكون اول من يرد على موضوعك
سؤال
هل الجداول في قاعدة البيانات لازم تعمل لها علاقات اذا عملنا كود لربطها مع بعضها البعض اذا استخدمنا الطريقة الثانية ؟
اريد مثال على جلب معلومات من 3 جداول وعرضها في MSFlexGrid1 بدل الداتا قريد وتحت رقم الموظف والتعديل والاضافة والحذف كله من خلال الحقول التي امامي
لقد استفدت من موضوعك وهو مهم للتنقل بين الجداول وان شاء الله يستفيد منه كل اعضاء المنتدى الموقر
وفقك الله ونفع بعلمك
اخي ابو سجود لي الشرف ان اكون اول من يرد على موضوعك
سؤال
هل الجداول في قاعدة البيانات لازم تعمل لها علاقات اذا عملنا كود لربطها مع بعضها البعض اذا استخدمنا الطريقة الثانية ؟
اريد مثال على جلب معلومات من 3 جداول وعرضها في MSFlexGrid1 بدل الداتا قريد وتحت رقم الموظف والتعديل والاضافة والحذف كله من خلال الحقول التي امامي
لقد استفدت من موضوعك وهو مهم للتنقل بين الجداول وان شاء الله يستفيد منه كل اعضاء المنتدى الموقر
وفقك الله ونفع بعلمك
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
ليس من اخترق جهاز اصبح هكر
وليس من كتب كود اصبح مبرمج
وليس من كسر برنامج صار خيبير كسر
ولكن من تواضع لله رفعة
tryold- ...
- تاريخ التسجيل : 06/04/2013
المساهمات : 37
النقاط : 47
التقيم : 2
الدولة :
الجنس :
رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة
اخي ابو سجود لي الشرف ان اكون اول من يرد على موضوعك
اهلا وسهلا بك أخى الكريم ...بل يشرفنى انك مرورك على المشاركة
- الكود:
هل الجداول في قاعدة البيانات لازم تعمل لها علاقات اذا عملنا كود لربطها مع بعضها البعض اذا استخدمنا الطريقة الثانية ؟
سواء كانت الطريقة الاولى أو الطريقة الثانية فإن العلاقات بين الجدوال ليست شرط فى الاستعلام بالكود من خلال الفجوال بيسك ...وانما لها اهمية فى انشاء استعلامات من خلال قاعدة البيانات ذاتها ....هذا طبعا على حد علمى .
- الكود:
اريد مثال على جلب معلومات من 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
أبوسجود- ......
- تاريخ التسجيل : 18/02/2011
المساهمات : 101
النقاط : 187
التقيم : 8
الجنس :
رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة
طبعا الكود السابق فقط لملىء FlexGrid بنتيجة البحث ....اما كيفية الحذف و التعديل والاضافة من خلال الاداة FlexGrid ...سأحاول ابعت لك كود فيما بعد
أبوسجود- ......
- تاريخ التسجيل : 18/02/2011
المساهمات : 101
النقاط : 187
التقيم : 8
الجنس :
رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة
اهلا اخوي ابو سجود ويعطيك العافية
طيب اذا وضعت اكثر من جدول في sql ماذا يحدث
جرب تضيف ثلاث جداول بحقولهم على الجدولين السابقين وشوف ما يحدث ؟
وهل اذا عملت جدول اخرى واردت ان اضمه معهم لازم اعمل له حقل بأسم name
الا يكفي حقل التعريف حقة اللي هو ID
المناقشة معك اخي ممتعة ومفيدة بارك الله فيك وفي والديك وجعلك ممن يكسب رضاهم
انتظر ردك
اخوك ابو فارس
طيب اذا وضعت اكثر من جدول في sql ماذا يحدث
جرب تضيف ثلاث جداول بحقولهم على الجدولين السابقين وشوف ما يحدث ؟
وهل اذا عملت جدول اخرى واردت ان اضمه معهم لازم اعمل له حقل بأسم name
الا يكفي حقل التعريف حقة اللي هو ID
المناقشة معك اخي ممتعة ومفيدة بارك الله فيك وفي والديك وجعلك ممن يكسب رضاهم
انتظر ردك
اخوك ابو فارس
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
ليس من اخترق جهاز اصبح هكر
وليس من كتب كود اصبح مبرمج
وليس من كسر برنامج صار خيبير كسر
ولكن من تواضع لله رفعة
tryold- ...
- تاريخ التسجيل : 06/04/2013
المساهمات : 37
النقاط : 47
التقيم : 2
الدولة :
الجنس :
رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة
tryold كتب:اهلا اخوي ابو سجود ويعطيك العافية
اخوك ابو فارس
أهلا وسهلا بيك أخى الكريم أبو فارس .....
- الكود:
طيب اذا وضعت اكثر من جدول في sql ماذا يحدث
جرب تضيف ثلاث جداول بحقولهم على الجدولين السابقين وشوف ما يحدث ؟
المثال
الذى قد ارستله اليك فيه استعلام من ثلاث جدوال وهم v1 , v2, info
.....وكما اننى قد قرأت ان هناك بعض قواعد البيانات التى تحدد عدد الجدوال
التى يمكن استخدامها فى الاستعلام ولا اعرف صراحة ما هو عدد الجدوال فى
قاعدة بيانات اكسس التى يمنك استخدامها فى استعلام
- الكود:
وهل اذا عملت جدول اخرى واردت ان اضمه معهم لازم اعمل له حقل بأسم name
الا يكفي حقل التعريف حقة اللي هو ID
لا
يا اخى الفاضل ليس شرطا .....وكل ما هنالك أنك اذا اردت أن تجلب بيانات
حقل معين لابد أن يكون هذا الحقل موجود فى الاستعلام وموجود فى قاعدة
البيانات .....سواء إن كان هذا الحقل name او id أو أى مسمى أخر ....مع
ملاحظة أن الحقول النصية من الافضل استخدام القوس [] فى الاستعلام حتى تسهل
عملية قراءة بيانات الجدول
- الكود:
المناقشة معك اخي ممتعة ومفيدة بارك الله فيك وفي والديك وجعلك ممن يكسب رضاهم
انتظر ردك
بارك الله فيك يا ابو فارس ...دا أنا اللى استفدت من المناقشة معك .....و أرجوا المعذرة فى غيابى كل تلك الفترة
أبوسجود- ......
- تاريخ التسجيل : 18/02/2011
المساهمات : 101
النقاط : 187
التقيم : 8
الجنس :
رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة
انا بصراحه بشكرك ع المجهود لكن انا اختلط عليا الامر شويه انا مبتداء وبتعامل بطريقة الربط العاديه للاكسسيس بعد تحويله الى 79
وبربطه باداه data1
مش بتسخدم الADO للاسف
وانا ارفت مثالى ومحتاج فيه هو عرض بانات جدولين فى اداة داتا جريد واحده بس
وعند البحث عن اسم تاتى النتائج من جدولين داخل اداه داتا جريد واحده
مش عارف ده ينفع ولا لاء ياريت تساعدنى من داخل المثال الى ارفقته وإاليك ولك جزيل الشكر
ولأحمد متاع صاحب الفضل الكبير لى
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
وبربطه باداه data1
مش بتسخدم الADO للاسف
وانا ارفت مثالى ومحتاج فيه هو عرض بانات جدولين فى اداة داتا جريد واحده بس
وعند البحث عن اسم تاتى النتائج من جدولين داخل اداه داتا جريد واحده
مش عارف ده ينفع ولا لاء ياريت تساعدنى من داخل المثال الى ارفقته وإاليك ولك جزيل الشكر
ولأحمد متاع صاحب الفضل الكبير لى
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
torky1985- .....
- تاريخ التسجيل : 25/05/2013
المساهمات : 82
النقاط : 115
التقيم : 1
الدولة :
الجنس :
رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة
للرفع
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
NEXT- الادارة
- تاريخ التسجيل : 18/02/2011
المساهمات : 446
النقاط : 200660
التقيم : 28
الدولة :
الجنس :
رد: كتابة عبارات SQL التي تستخدم للاستعلام فى جداول متعددة
دى جمله select ...وانا محتاج جمله update
محتاج اعمل تعديل ف الجدول الاول والجدول الثانى بنفس الوقت
محتاج اعمل تعديل ف الجدول الاول والجدول الثانى بنفس الوقت
torky1985- .....
- تاريخ التسجيل : 25/05/2013
المساهمات : 82
النقاط : 115
التقيم : 1
الدولة :
الجنس :
| |
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
الثلاثاء مارس 26, 2024 6:26 pm من طرف moslema_r
» شركة تنظيف استراحات بالرياض
الأحد مارس 24, 2024 10:49 pm من طرف moslema_r
» كشف تسربات المياه في جدة
السبت مارس 23, 2024 7:23 pm من طرف gmalnagy
» خدمات كشف تسربات المياه بخصم 25% - اتصل الان
السبت مارس 23, 2024 7:22 pm من طرف gmalnagy
» شركة تنظيف ثريات بالرياض
الخميس مارس 21, 2024 7:23 pm من طرف moslema_r
» كهربائي منازل بالرياض
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد
» افضل فني كهربائي منازل بالرياض جودة 100% | اتصل الآن
الأحد مارس 17, 2024 12:36 pm من طرف رانيا حماد