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

mysql में नहीं चुनें () - सेट को अलग करें?

आपको मौजूद नहीं का उपयोग करना चाहिए:

SELECT DISTINCT a, b, c FROM t1 WHERE NOT EXISTS (SELECT NULL FROM t2 WHERE t1.a = t2.a AND t1.b = t2.b AND t1.c = t2.c)

ऐसा करने के लिए NOT IN का उपयोग करना सबसे अच्छा तरीका नहीं है, भले ही आप केवल एक कुंजी की जांच करें। इसका कारण यह है कि यदि आप NOT EXISTS का उपयोग करते हैं तो DBMS को केवल सूचकांकों की जाँच करनी होगी यदि आवश्यक कॉलम के लिए सूचकांक मौजूद हैं, जहाँ NOT IN के लिए वास्तविक डेटा को पढ़ना होगा और एक पूर्ण परिणाम सेट बनाना होगा जिसे बाद में जाँचने की आवश्यकता है। ।

बाएं जॉइन का उपयोग करना और फिर न्यूल की जांच करना भी एक बुरा विचार है, जब टेबल बड़े होते हैं तो यह दर्दनाक रूप से धीमा हो जाएगा क्योंकि क्वेरी को पूरी तरह से जुड़ने की जरूरत है, दोनों टेबल को पूरी तरह से पढ़ना और बाद में इसे बहुत दूर फेंक देना। साथ ही, यदि कॉलम NULL मानों की अनुमति देते हैं, तो NULL के लिए जाँच करने पर झूठी सकारात्मक रिपोर्ट मिलेगी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL क्वेरी में पंक्ति स्थिति प्राप्त करें

  2. डेटाबेस से परिणाम पुनर्प्राप्त करने और PHP और mysqli का उपयोग करके सरणी में डालने के लिए mysql_fetch_row का उपयोग करें?

  3. django ऐप बनाने के लिए रिवर्स इंजीनियर mysql डेटाबेस

  4. MySQL तालिका में दूसरा उच्चतम मान प्राप्त करें

  5. एकल पंक्ति का योग मान?