إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

join and non equal


2 رد (ردود) على هذا الموضوع

#1 the past

the past

    عضو مميز

  • الأعضــاء
  • 951 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 05 December 2006 - 09:32 AM

I want to askn about join and non equal

please can u expline me that

#2 -=|mOOdY|=-

-=|mOOdY|=-

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,324 مشاركة

تاريخ المشاركة 15 December 2006 - 06:37 PM

Simple Join
select col1,tab1.col2,col3 from tab1,tab2
where tab1.col2=tab2.col2
This is the most common type of join. It returns rows from two tables based on an equality condition, therefore it is also called an equi-join.



Non-Equi Join
select tab1.col1,tab2.col2 from tab1,tab2
where tab1.col1 between lowval and highval
Since this join doesn't return rows based on a equality condition, it is called a non-equi join.



Self Join
select alias1.col1,alias2.col1 "Header 2" from tabname alias1,tabname alias2
where alias1.col2=alias2.col3
In this example the table tabname is joined with itself. Using of two different alias names for the same table allows you to refer to it twice. Since the names of the resulting columns in this example are the same, the second column gets a new header.



Outer Join
select col1,col2 from tab1,tab2
where tab1.col1=tab2.col2(+)
Suppose you want to retrieve information from two tables where not all rows match but the result should contain all values from one or more columns. A simple join will select only matching rows whereas the outer join extends the result. All matching rows will be selected and when you append the outer join operator (+) to a column name, those rows which do not match will also be selected. In the example the number of rows which are selected is the number of rows in table tab2. If rows match, the outer join works as a simple join, if not, the values from tab2.col2 and a NULL value for the non existing value of tab1.col1 will be selected.


تم التعديل بواسطة moody_4u, 15 December 2006 - 06:37 PM.

صورة

!!! كم أنت عبقري !!!


#3 amsh

amsh

    عضو

  • الأعضــاء
  • 20 مشاركة

تاريخ المشاركة 27 December 2006 - 10:28 PM

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله
لقد اجابك الأخ Moody_4u وقد وفى جزاه الله خيراُ ولكن اقتصرت اجابته على طرق الربط الخاصة بOracle ولتي كنت الوسيلة الوحيدة في الاصدارة 8i وماقبلها وهي غير متاحة في ANSI لذلك دعمت الاوراكل هذه الصيغ باضافة طريقة جديدة للربط وهي Joinوالصيغة النموذجية لها هي :
SELECT table1.column, table2.column
FROM table1
[CROSS JOIN table2] |
[NATURAL JOIN table2] |
[JOIN table2 USING (column_name)] |
[JOIN table2
ON(table1.column_name = table2.column_name)] |
[LEFT|RIGHT|FULL OUTER JOIN table2
ON (table1.column_name = table2.column_name)];


والسؤال عن الربط المتساوي والربط الغير متساوي(بتعبيري)
فان عبارة Cross Join هي لاعطاء الجداء الديكارتي
اما Natural Join,Join ...Using,
Join...On(table1.column_nam=table2.column_name)
فهي للربط بين جدولين باستخدام القيم في الأعمدة المستخدمة باعتبار تساوي القيم أي Equal Join
اما NunEqual Joinفيمكن التصريح عنها كمايلي:
SELECT table1.column , table2.column
FROM table1
JOIN table 2
ON (Join Condetion);
حيث يمكن ان يكون شرط الربط مساواة أو اكبر او اصغر او اي شرط أخر معرف في أوراكل
ارجوا لكم من الله دوام التوفيق
وسامحوني عن اي خطأ فيما كتب وأرجو اعلامي به وشكرا