Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एसक्यूएल:प्रतिच्छेदन के साथ सिंटेक्स त्रुटि?

MySQL, जिसका आप उपयोग कर रहे हैं, INTERSECT . का समर्थन नहीं करता है वाक्य - विन्यास। आपको इसे दूसरे तरीके से हल करना होगा।

इस मामले में, यह मामूली है - हमें केवल उन सभी आपूर्तिकर्ताओं की एक सूची की आवश्यकता है जो कुछ हिस्से के "हरे" और "लाल" की पेशकश करते हैं- आपकी क्वेरी यह देखने के लिए परेशान नहीं करती है कि भागों स्वयं संबंधित हैं या नहीं, इसलिए हम इसे आसानी से हल कर सकते हैं इस तरह:

SELECT Suppliers.sid
FROM Suppliers
JOIN Catalog ON Catalog.sid = Suppliers.sid
JOIN Parts ON Parts.pid = Catalog.pid
WHERE Parts.color IN ('red', 'green')
GROUP BY Suppliers.sid
HAVING COUNT(DISTINCT Parts.color) = 2

व्यक्तिगत रूप से, मुझे विश्वास नहीं है कि मूल क्वेरी एक विशिष्ट INTERSECT है समस्या। JOIN . पर एक नज़र डालें INTERSECT . का अनुकरण करने के लिए एक सामान्य समाधान के लिए Vinko Vrsalovic द्वारा प्रस्तावित समाधान (जिसे मैं बीटीडब्ल्यू पसंद करूंगा, भले ही आरडीबीएमएस वास्तव में INTERSECT . की पेशकश करे मूल रूप से)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विभिन्न डेटाबेस में दृश्य बनाना

  2. पदानुक्रमित डेटा - नेस्टेड सेट मॉडल:MySql

  3. हाइबरनेट के साथ थोक डालें या अपडेट करें?

  4. Laravel प्रवासन तालिका पहले से मौजूद है, लेकिन मैं नया जोड़ना चाहता हूं पुराने नहीं

  5. MySQL में, इस क्वेरी को तेज़ करने के लिए इंडेक्स कैसे बनाया जाए?