01-05-2020, 02:39 PM
أعتقد أنه هناك سوء فهم
يمكن أنا لم أعرف كيف اصيغ الكلام كي تفهمني
فعند وضعي الرد التالي
يحذف سجل من jobs وزبون من clients
أما عند إستعمال الإستعلام الثاني و تنفيذ ADOQuery1.Delete;
يحذف سجل من jobs فقط
أعلم أن الإستعلام الثاني يقوم بتحديد الجدول jobs فقط فعند تنفيذ ADOQuery1.Delete;
فبطبيعة الحال عند الحذف لن يتأثر جدول Clients
كيف أستعمل الإستعلام الأول مع ADOQuery1.Delete;
بشرط أن لا يحذف زبون من جدول Clients
ردك
لكن بما أنني أقوم بعرض في DBGrid الحقلين (id_job, job) فقط
فيمكن أن نقول 5 = 2
يمكن أنا لم أعرف كيف اصيغ الكلام كي تفهمني
فعند وضعي الرد التالي
إقتباس :عند إستعمال inner join يتم ربط الجدولين مع بعضفعند إستعمال الإستعلام الأول و تنفيذ ADOQuery1.Delete;
وبعد حذف أي سجل من الجدول jobsPHP كود :الإستعلام الأول
select * from Jobs inner join Clients on (Jobs.Id_client = Clients.Id_client) where Clients.id_client =2
يتم حذف الزبون من الجدول client المربوط مع jobs
فستعملت الإستعلام التالي لحل المشكل
وكل شيئ يعمل تمام.PHP كود :الإستعلام الثاني
select * from Jobs where id_client =2
فما الفرق بين الإستعلام الأول والثاني علما أنهما يعرضان نفس النتائج؟
يحذف سجل من jobs وزبون من clients
أما عند إستعمال الإستعلام الثاني و تنفيذ ADOQuery1.Delete;
يحذف سجل من jobs فقط
أعلم أن الإستعلام الثاني يقوم بتحديد الجدول jobs فقط فعند تنفيذ ADOQuery1.Delete;
فبطبيعة الحال عند الحذف لن يتأثر جدول Clients
كيف أستعمل الإستعلام الأول مع ADOQuery1.Delete;
بشرط أن لا يحذف زبون من جدول Clients
ردك
إقتباس :الاستعلامين بالطريقة التي كتبتهما غير متكافئان و لا يعطيان نفس النتيجة الاستعلام الاول تحصل على جميع السجلات من الجدولين و الثاني غير ذلكأعلم أن الإستعلامين غير متكافئين فلا يمكن أن نقول 5 = 2
الاستعلام الاول لديك ربط بين الجدولين يمكن ان تحصل على اسم الـ client من جدول الـ client و العمل الخاص به job من جدول الـ jobs
الاستعلام الثاني لا يمكن الحصول على اسم الـ client من جدول الـ client تتعامل فقط مع جدول الـ jobs
لكن بما أنني أقوم بعرض في DBGrid الحقلين (id_job, job) فقط
فيمكن أن نقول 5 = 2
سبحان الله وبحمده سبحان الله العظيم

