الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

مساعدة فى ربط الداتا

Featured Replies

بتاريخ:

السلام عليكم

اخوكم مبتدأ و محتاج حل للموضوع دة  :)

post-133302-0-22891600-1383596518_thumb.png

بتاريخ:

 
هذا الرابط سوف يفيدك  Normalization rules   http://www.studytonight.com/dbms/database-normalization.php

 

 

 

 أما لحل المشكلة الحالية عليك إضافة جدول ثالث يربط بين جدول الBrand  وجدول الClass بعلاقة many-to-many 
وسيسصبح لديك 3 جداول كما يلي :
(Brand(PK. brand_code, brand_name

(Class(PK. class_code, class_name

(Brand_Class(FK. brand_code, FK. class_code

 

والآن اذا أردت الحصول على الكلاسات الخاصة بالبراند Dell مثلا فيكون ذلك من خلال الاستعلام التالي:

)SELECT class_name FROM Class WHERE class_code IN

(("SELECT class_code From Brand_Class WHERE brand_code IN (SELECT brand code FROM Brand WHERE brand_name="Dell

 

وستكون النتيجة تبعا للصورة هي كيبوردات وماوسات

بتاريخ:
  • كاتب الموضوع

متشكر جداا اخى بس كدة انا عندى سؤالين 
الاول-  طبقا للاسكيما ديه وبعد م انشأ الجدول اللى هايربط بين الكلاس و البراند ازاى هايتم الربط بجدول item؟ وليكن مثلا انا عندى كيبورد dell فى منه usb و فى منه wireless مثلا؟
هل ينفع نربط many to many عن طريق الجدول التالت ولا ايه اللى هايتم؟

الثانى- لما اجى اعمل فورمه ماستر ديتيل يبن الكلاس و البراند مثلا هاخد البلكات بتاعتهم بس و لا هاخد كمان الجدول التالت اللى انشئناة
مثال"انا عايز مثلا فى الفورمه الماستر اختار الكيبوردات يظهرلى تحت فى الديتيل الانواع اللى موجودة .. dell   hp  الخ..

post-133302-0-66279100-1383650697_thumb.gif

بتاريخ:

إجابة سؤالك الأول :

طالما عندك جدول Item  فلا داعي لوجود الجدول التالت Brand-Class .. عليك ربط الجدول Brand والجدول Class بالجدول Item أي أن الجدول Item  هو الذي سيحل محل الجدول الثالث .. وسوف يحتوي الجدول Item  على Fk من جدول Brand و FK من الجدول Class  مع إلغاء العلاقة التي تربط الBrand مع الClass 

 

 

بالنسبة لسؤالك التاني عندما تختار كيبوردات هل تريد أن يظهر  لك الأنواع متل Dell, hp..... أم تريد أن يظهر لك الأنواع مع بعض التافصيل مثلا انه الكيبودات في منها Dell وusb وفي منها Dell و wireless وفي منها hp وusb ......إلخ ؟؟؟؟

بتاريخ:
  • كاتب الموضوع

انا عايز اختار كيبوردات يظهرلى dell, hp ...... و بعد كدة انا ادوس مثلا على ال dell يظهرلى التفاصيل بتاعته 
master detail detail

بتاريخ:

عند اختيار كيبوردات مثلا وأردت ظهور الأنواع فقط Dell, Hp ....   طبعا بعد إجراء التعديل السابق على الجداول عندها يمكنك استخدام الاستعلام التالي

 

(SELECT brand_name FROM Brand WHERE brand_code IN(SELECT distinct  brand_code FROM Item 

بتاريخ:
  • كاتب الموضوع

وكدة اغير الكود و اعمله ايتم لما احب اعرض التفاصيل التانيه صح؟
 

مشكور اخى انا عارف انى تقلت عليك

بتاريخ:
  • كاتب الموضوع

إجابة سؤالك الأول :

طالما عندك جدول Item  فلا داعي لوجود الجدول التالت Brand-Class .. عليك ربط الجدول Brand والجدول Class بالجدول Item أي أن الجدول Item  هو الذي سيحل محل الجدول الثالث .. وسوف يحتوي الجدول Item  على Fk من جدول Brand و FK من الجدول Class  مع إلغاء العلاقة التي تربط الBrand مع الClass 

 

 

بالنسبة لسؤالك التاني عندما تختار كيبوردات هل تريد أن يظهر  لك الأنواع متل Dell, hp..... أم تريد أن يظهر لك الأنواع مع بعض التافصيل مثلا انه الكيبودات في منها Dell وusb وفي منها Dell و wireless وفي منها hp وusb ......إلخ ؟؟؟؟

طيب بالنسبه ل ديه تتعمل ازاى؟

بتاريخ:

ما فهمت سؤالك ؟ شو قصدك بالتفاصيل التانية ؟ هي النوع مثلا Usb و wireless ...  ؟ وهي المعلومات موجودة بأي جدول؟ Item ولا Brand ؟

 

العفو اسأل زي مانت عايز واعبرني متل أختك  :)

بتاريخ:

 

إجابة سؤالك الأول :

طالما عندك جدول Item  فلا داعي لوجود الجدول التالت Brand-Class .. عليك ربط الجدول Brand والجدول Class بالجدول Item أي أن الجدول Item  هو الذي سيحل محل الجدول الثالث .. وسوف يحتوي الجدول Item  على Fk من جدول Brand و FK من الجدول Class  مع إلغاء العلاقة التي تربط الBrand مع الClass 

 

 

بالنسبة لسؤالك التاني عندما تختار كيبوردات هل تريد أن يظهر  لك الأنواع متل Dell, hp..... أم تريد أن يظهر لك الأنواع مع بعض التافصيل مثلا انه الكيبودات في منها Dell وusb وفي منها Dell و wireless وفي منها hp وusb ......إلخ ؟؟؟؟

طيب بالنسبه ل ديه تتعمل ازاى؟

 

 

حسب انت وين مخزن المعلومات زي  USB و wireless .... شو هو الحقل (العمود) اللي بيحتوي القيم دي؟ 

تم تعديل بواسطة hilda

بتاريخ:
  • كاتب الموضوع

جدول الايتم عمود اسمه model هو اللى فيه usb و wireless ..........

بتاريخ:

عند اختيار "كيبوردات" على سبيل المثال وتريد ظهور جميع موديلات الكيبوردات وأنواعها المتوفرة وأسعارها فسيكون من خلال الاستعلام التالي :

 

SELECT brand_name,model,price 

FROM Item 

Join Brand 

ON Item.brand_code=Brand.brand_code

('WHERE class_code IN (SELECT class_code FROM Class WHERE class_name='keyboard

بتاريخ:
  • كاتب الموضوع

مشكوووووووورة كتيييييييير و معلشى تعبتك معااايا  :) 
 

هارووح اجرب بقه وربنا يستر :D

بتاريخ:

بالتوفيق ان شالله :)

بتاريخ:
  • كاتب الموضوع

انا جربت و طلعلى الايرور دة و غيرت فى الكود و طلعلى الايرور دة  :(​ 

post-133302-0-22874000-1383687019_thumb.png

بتاريخ:
  • كاتب الموضوع

الكود التانى

post-133302-0-55186300-1383687142_thumb.png

بتاريخ:

أول خطأ عندك هو انه ما بصير تحط علامة يساوي "=" بالسطر الخامس ولاز تستبدلها بالكلمة المفتاحية IN

 

تاني خطأ هو انه طريقة ربط الجداول عندك خطأ

بالحالة هي الأنسب انك تستعمل ربط الجداول باستخدام تعليمة JOIN  كما يلي

 

 

SELECT item.model, item.price, brand.brand_name
FROM item
JOIN brand 
ON item.brand_item_code=brand.brand_code
(WHERE item.class_code IN (SELECT class_code FROM class WHERE class_name=:class_name
بتاريخ:

التعليمة اللي عطيتك ياها شغالة عندي كويس 

 

شو البرنامج اللي عم تشتغل عليه؟

 

مشان الخطأ اللي بالصورة التانية جرب استبدل كلمة JOIN بـ LEFT OUTER JOIN 

لأنو في لغات برمجة ما بتقبل كلمة JOIN  لحالها 

وقلي شو بصير معك

بتاريخ:
  • كاتب الموضوع

لما جربت join طلعلى الايرور دة 
انا شغال على 11g r2

post-133302-0-82070600-1383831673_thumb.png

بتاريخ:
  • كاتب الموضوع

left outer join 

post-133302-0-14511200-1383831769_thumb.png

بتاريخ:

بصراحة هي الأخطاء ما مرت معي أنا عم اشتغل SQL Server

 

جرب هي آخر محاولة
 
SELECT item.model, item.price, brand.brand_name
FROM item,brand  
(WHERE item.class_code IN (SELECT class_code FROM class WHERE class_name=:class_name
and 
 item.brand_item_code=brand.brand_code
بتاريخ:
  • كاتب الموضوع

اخر ما توصلت اليه ان انا عملت جدول اسمه مودل و ربطه بجدول الايتم و كدة بقه عندى 3 جداول مربوطين بجدول الايتم (class-brand-model) 
وكتبت الكود دة 

begin
 
SELECT item_name,price 
into :item_name,:price 
 
FROM Item
 
;(WHERE item.class_item_code IN (SELECT class_code FROM Class WHERE class_name=:class_name
 
;end
 
وكدة انا لما بكتار كلاس معين و ليكن مثلا الكيبورد بيظهرلى التفاصيل بتاعته انواعه و سعرة و الكميه و الخ...... 
ومتشكر كتييير على تعبك معاايا

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.