मैं बस छोड़कर और MSDN लाइब्रेरी में INTERSECT बारे में पढ़ने और INTERSECT कैसे उपयोग करने के लिए की इस उदाहरण में आए किया गया था:टी-एसक्यूएल में EXCEPT क्यों मौजूद है?
USE AdventureWorks2008R2 GO
SELECT ProductID
FROM Production.Product
INTERSECT
SELECT ProductID
FROM Production.WorkOrder ;
--Result: 238 Rows (products that have work orders)
शायद मैं पुराने जमाने हूँ, लेकिन मैं आम तौर पर प्राप्त करने के लिए निम्न कोड का प्रयोग करेंगे एक ही परिणाम:
SELECT P.ProductID
FROM Production.Product P
INNER JOIN Production.WorkOrder W ON W.ProductID = P.ProductID
क्या मुझे कुछ याद आ रहा है, या इंटर्न जॉइन के समान ही है? क्या दूसरे पर एक का उपयोग करने के लिए एक प्रदर्शन लाभ है?
EXCEPT के लिए एक ही सवाल। यह कैसे है:
इस सेUSE AdventureWorks2008R2;
GO
SELECT ProductID
FROM Production.Product
EXCEPT
SELECT ProductID
FROM Production.WorkOrder ;
--Result: 266 Rows (products without work orders)
अलग:
SELECT P.ProductID
FROM Production.Product P
LEFT JOIN Production.WorkOrder W ON W.ProductID = P.ProductID
WHERE W.ProductID IS NULL
?
-1 का वर्णन करने के लिए अतिरिक्त कॉलम जोड़ा गया: यह नहीं है कि इंटरसेक्ट कैसे काम करता है। आपका पहला उदाहरण उन उत्पादों को वापस नहीं करता है जिनमें कार्य आदेश हैं; यह किसी भी उत्पाद की आईडी लौटाता है जिसमें एक ही आईडी है जो किसी उत्पाद के लिए कार्य आदेश की आईडी के रूप में होती है। –