צפיות
תשובות
שאלה ב-SQL
יש לי את הקוד הבא:
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 תשובות
מעבר לעובדה שהשאלה לא מובנת בעליל, יש לך שגיאה במבנה השאילתא – לכל משפט JOIN יש רק ביטוי ON אחד.
אם אתה רוצה ליצור יותר מהשוואה אחת, תשתמש ב-AND. למשל JOIN x ON z=y AND a=b, ולאחר מכן אתה יכול ליצור JOIN נוסף אם אתה צריך
תוכל לקרוא על זה בהרחבה כאן:
https://webmaster.org.il/articles/sql-join1