warning بتاريخ: 24 أكتوبر 2007 تقديم بلاغ مشاركة بتاريخ: 24 أكتوبر 2007 السلام عليكم ورحمة الله وبركاته لو فرضنا لدينا الجدول a فيه جميع الموظفين وارقامهم واسمائهم والجدول b فيه ارقام الموظفين المرضىوالجدول c فيه ارقام الموظفين المسافرينونريد استعلام يظهر اسماء الموظفين المرضى والمسافرين , كيف تتم عمليه الربط اذا اردنا الربط الي الجمله FORM ؟مثلا انا حاولت كالتالي [left] select ................ FROM ( b FULL OUTER JOIN c ON b.employee_no=c.employee.no ) LEFT OUTER JOIN a ON c.employee_no=a.employee_no[/left] ولكن هذه الطريقة لم تنجح حيث انها اخرجت فقط اسماء الموظفين المسافرين اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
interface بتاريخ: 25 أكتوبر 2007 تقديم بلاغ مشاركة بتاريخ: 25 أكتوبر 2007 أن شاء الله اني اوفق الى الاجابة اصحيحة select number ,ename , dept,salary from a,b,c where a.number=b.ename and a.dept=c.salary; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
warning بتاريخ: 30 أكتوبر 2007 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 30 أكتوبر 2007 لا اعتقد ان اجابتك من الممكن ان تعمل ياعزيزي , أرجو ممن لديه الحل اخبارناحتى ولو كان باستخدام اي طريقة ربط من where او غيره اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد570 بتاريخ: 30 أكتوبر 2007 تقديم بلاغ مشاركة بتاريخ: 30 أكتوبر 2007 السلام عليكم و رحمة الله و بركاته ..جرب هذا الكود.. select a.emp_name from a,b,c where a.emp_id in ( select b.emp_id from b,c where b.emp_id=c.emp_id); أتمنى تكون الإجابة صحيحة .. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
عبود بتاريخ: 30 أكتوبر 2007 تقديم بلاغ مشاركة بتاريخ: 30 أكتوبر 2007 السلام عليكماخي الكريم , لكي تتمكن من استرجاع المعلومات من اكثر من جدول واحد يجب ان يكون تصميم هذه الجداول صحيحا بمعنا ان يكون تصميم ال ERD مبني على اساس ربط الجداول بصوره منطقيه مع بعض باستخدام المفاتيح الاوليه والثانويه او PK and FK وبهذه الحاله تستطيع استرجاع المعلومات من الجداول من خلال استخدام شرط ربط صحيح وعاده يكون بصوره مساوه المفتاحين الاولي والثانوي في عباره ال where وهنالك قاعده عامه هو ان شروط الربط او ال join condition يجب ان تكون على الاقل n-1 من الجداول, على فرش ان n هي عدد الجداول المراد استرجاع المعلومات منها.بالنسبه للمثال الذي تسال عنه فهو غير صحيح لان الجداول اصلا غير مكونه تكوين صحيح, يجب ان يكون هنالك جدول واحد لكل الموضفين مهما كانت حالتهم مسافرين او غير ذلك,فيما يلي مثال ساقوم باسترجاع بيانات من 3 جداول select employee_id, last_name, department_id, department_name, location_idfrom employees, departments, locationswhere employees.department_id = departments.department_idand departments.department_id = locations.department_idعلى اعتبار ان رقم الموظف واسمه ورقم القسم هي من جدول الموظفين واسم القسم هي من جدول الاقسام واسم الموقع هي من جدول المواقعمع الشكرعلي غزالهOracle Developerالسليمانيه - العراق 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hanyfreedom بتاريخ: 16 نوفمبر 2007 تقديم بلاغ مشاركة بتاريخ: 16 نوفمبر 2007 Creating Three-Way Joins with the ON Clause SELECT employee_id, city, department_name FROM employees e JOIN departments d ON d.department_id = e.department_id JOIN locations l ON d.location_id = l.location_id; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
magboss بتاريخ: 3 ديسمبر 2007 تقديم بلاغ مشاركة بتاريخ: 3 ديسمبر 2007 ده كود ربط بين 3 جداولجدول الموضفين مع الأدارات وجدول ترتيب المرتبات select e.ename,e.sal,d.dname,s.grade from emp e,dept d,salgrade s where e.deptno=d.deptno and e.sal between losal and hisal; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
MSHEGYPT بتاريخ: 27 أبريل 2008 تقديم بلاغ مشاركة بتاريخ: 27 أبريل 2008 اعتقد ان الحل الصحيح هو :- select a.name from a join b on a.id = b.id join c on a.id = c.id اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
weloooo بتاريخ: 1 مايو 2008 تقديم بلاغ مشاركة بتاريخ: 1 مايو 2008 السلام عليكم. أنا أؤيد رأي الأخ عبود وأرى أيضاً أن تكوين الثلاث جداول غير منطقي حيث أن البيانات تكاد تكوم متماثله في الثلاث جداول ولا يفرق بينهما إلا الحاله سواء كان مريض أو مسافر أو أياً كان. فالجدول الأول حسب كلامك به بيانات كل الموظفين سواء المرضى أو المسافرين أو أي حاله أخرى. ثم بعد ذلك تقوم بعمل جدول تحدد فيه الموظفين المرضى فقط والموجودين أساساًَ في الجدول الأول. وتقوم بإنشاء جدول آخر تكتب فيه الموظفين المسافرين والموجودين أيضاً في الجدول الأول ، أي أن الجداول الثاني والثالث ليسوا إلا حاله من الجدول الأول. في رأيي هذا خطأ منطقي وذلك للآتي:أولاً: إذا نظرت بدقه إلي العلاقه بين الجدول الأول الثاني وبين الجدول الأول والثالث ستجد كلاهما علاقة one to one وهذه العلاقه غالباً ما يتم حلها بدمج علاقة الجدولين في جدول واحد ويتم التمييز بينهما بإنشاء عمود آخر للتمييز بين بيانات كلا الجدولين(في حالتك تضيف عمود وتسميه الحاله وتحدد سواء مريض او مسافر أو أياً كان). في حالات نادره نستعين بعلاقة one to one ولكن حالتك هذه لا تحتاجها. ثانياً: إنشاء جداول بهذا الشكل يصعب عملية الصيانه والتطوير مستقبلياً. إن إنشاء جداول البيانات بهذا الشكل يصعب عليك عملية الإستعلام والتعامل مع البيانات وأظن أنك واجهتها الآن. إن ال ERD الناجح والمنطقي يسهل عملية ال Data Flow وبذلك تسهل عملية الصيانه والمتابعه للبرنامج وكذلك التطوير به. أما إذا كان لابد من تواجد الجداول بهذا الشكل فجملة الإستعلام تكون كالآتي: SELECT employee_id FROM a WHERE EXISTS (SELECT employee_id FROM B UNION SELECT employee_id FROM C); بالتوفيق والنجاح... اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
الكونت بتاريخ: 27 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 27 يوليو 2009 اخي اعمل فيو تجمع فيه بين جدولين وبعدين اجمع بين الفيو والجدول الثالث ان شاء الله تزبط تقبل احترامي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
midosta بتاريخ: 27 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 27 يوليو 2009 select employee_id, last_name, department_id, department_name, location_id from employees, departments, locations where employees.department_id = departments.department_id and departments.department_id = locations.department_id هذا الجواب الصحيح..شكرا لكاتبه اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
midosta بتاريخ: 27 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 27 يوليو 2009 SELECT employee_id, city, department_name FROM employees e JOIN departments d ON d.department_id = e.department_id JOIN locations l ON d.location_id = l.location_id; ودي كمان صح اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
sho_7222 بتاريخ: 28 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 28 يوليو 2009 يااخوان لازم نفرق بين استعراض او استخراج البيانات من ثلاث جداول والربط بين الجداول في تصميم الجداولاذا كان الغرض هو استخراج البيانات من الجداول الثلاثه فهي كما في العلاقات الغير متساوية اعرض اسم الموظف وإدارته والدرجة الوظيفية والعاملين بإدارتي المبيعات والحسابات SELECT ENAME,GRADE,DNAME FROM EMP E,SALGRADE S,DEPT D WHERE E.DEPTNO=D.DEPTNO AND SAL BETWEEN LOSAL AND HISAL AND DNAME IN('ACCOUNTING','SALES') ; اما اذا كان الربط بين ثلاث جداول فيكون مثلا عندنا شاشه فيه الدول المحافظات المدن والاحياء -- REGION (Table) جدول المدن -- CREATE TABLE OMAR.REGION ( COD NUMBER, ENAME VARCHAR2(25 BYTE), COUNT_COD NUMBER, CONSTRAINT REGION_COD_PK PRIMARY KEY (COD), CONSTRAINT REGION_COUNT_COD_FK FOREIGN KEY (COUNT_COD) REFERENCES OMAR.COUNTRY (COD) ON DELETE CASCADE ); -- -- AREA (Table) جدول الاحياء -- CREATE TABLE OMAR.AREA ( COD NUMBER, ENAME VARCHAR2(25 BYTE), COUNT_COD NUMBER, REG_COD NUMBER, CONSTRAINT AREA_COUNT_COD_FK1 FOREIGN KEY (COUNT_COD) REFERENCES OMAR.COUNTRY (COD) ON DELETE CASCADE, CONSTRAINT AREA_REG_COD_FK2 FOREIGN KEY (REG_COD) REFERENCES OMAR.REGION (COD) ON DELETE CASCADE ); -- COUNTRY (Table) جدول الدول -- CREATE TABLE OMAR.COUNTRY ( COD NUMBER, ENAME VARCHAR2(25 BYTE), CONSTRAINT COUNTRY_COD_PK PRIMARY KEY (COD) ); _______.doc 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mohamed_shoair بتاريخ: 30 يوليو 2009 تقديم بلاغ مشاركة بتاريخ: 30 يوليو 2009 أنا مع رأي الأخ الكونتإنك تعمل فيو تربط فيها بين جدولين ، بس تاخد بالك من حاجة :الفيو والجدول الثالث اللي هتربط بينهم يكون بينهم عمود مشتركيعني في واحد برايماري ويكون في التاني فورين كييعني ببساطة هو الإيكو جوين وهو أسهل طريقة للربط اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Syrian Oracle بتاريخ: 4 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 4 أغسطس 2009 SELECT E.NAME FROM EMPLOYEE E, SICK S ,TRAVELLER T WHERE E.EMPNO = S.EMPNO OR E.EMPNO = T.EMPNO ; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mah_yabroudy بتاريخ: 18 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 18 أغسطس 2009 عزيزي الاجابه اسهل مما تتوقعوهي Select * from a where a.empno in(select b.empno from b union select c.empno from c) اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
abdalmageedtaher بتاريخ: 8 يناير 2017 تقديم بلاغ مشاركة بتاريخ: 8 يناير 2017 السلام عليكم ورحمة الله وبركاته انا عضو جديد لوفرضنا ان معنا ثلاثة جداول وهي A ,B,D والجدول A له عناصر كالتالي 1- رقمA 2- اسم A واريد وضع رقمA مفتاح اجنبي لـ الجدول B والجدول D كيف تتم العملية ... ارجو منكم التعاون ولكم جزيل الشكر.... اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.