שלח תשובה

זירת השאלות

1447
צפיות
1
תשובות

שאלה ב-SQL

,‏ 14 ביולי, 2012

יש לי את הקוד הבא:

SELECT E1.LastName,O1.OrderDate,E2.LastName
FROM Employees AS E1 INNER JOIN Orders AS O1 INNER JOIN Employees AS E2 INNER JOIN Orders AS O2
ON E2.EmployeeID=O2.EmployeeID
ON E2.EmployeeID>O1.EmployeeID
ON E1.EmployeeID=O1.EmployeeID
WHERE O1.OrderDate=O2.OrderDate

רציתי לדעת בחלק של ה-ON איך אני יודע בין איזה זוג אני שם סימן גדול או קטן…ברור לי שזה בשביל חיתוך אבל לפי מה אני יודע…

ודבר שני:

SELECT P1.ProductName,P2.ProductName
FROM Suppliers AS S1 INNER JOIN Suppliers AS S2 INNER JOIN Products AS P1 INNER JOIN Products AS P2
ON P2.SupplierID<P1.ProductID
ON P1.SupplierID=S2.SupplierID
ON S2.SupplierID<S1.SupplierID
WHERE P2.UnitPrice>80 AND S2.Country=S1.Country


לא ברור לי למה ה-ON הראשון מחובר עם הטבלה המשוכפלת רק עם מפתח שונה ? בשביל מה ?

1 תשובות

  1. מעבר לעובדה שהשאלה לא מובנת בעליל, יש לך שגיאה במבנה השאילתא – לכל משפט JOIN יש רק ביטוי ON אחד.

    אם אתה רוצה ליצור יותר מהשוואה אחת, תשתמש ב-AND. למשל JOIN x ON z=y AND a=b, ולאחר מכן אתה יכול ליצור JOIN נוסף אם אתה צריך

    תוכל לקרוא על זה בהרחבה כאן:
    https://webmaster.org.il/articles/sql-join1

שלח תשובה