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

लिंक टू एंटिटीज और लेफ्ट आउटर जॉइन इश्यू कई के साथ:1 संबंध

मैंने एक इकाई फ्रेमवर्क प्रदाता पर थोड़ा काम किया है और उस पर ध्यान दिया है। मेरा मानना ​​​​है कि प्रदाता के पास स्थिति में कोई विकल्प नहीं है। कमांड ट्री एंटिटी फ्रेमवर्क द्वारा बनाया गया है और इसे प्रदाता को SQL बनाने के लिए देता है। यह यहां एक पूर्ण अनुमान है, लेकिन हो सकता है कि उस स्थिति में बाएं बाहरी शामिल होने का कारण यह है कि इकाई ढांचे को वास्तव में पता नहीं है कि संदर्भात्मक बाधा डेटाबेस में मौजूद है। उदाहरण के लिए, मैं डेटाबेस से बनाए जाने के बाद इकाई मॉडल के साथ अंदर जा सकता हूं और उन बाधाओं को जोड़/बदल सकता हूं जिनका डेटाबेस क्या कर रहा है, इस पर कोई प्रतिबिंब नहीं है। शायद इसी कारण से, डिजाइनरों ने इसे सुरक्षित खेलना चुना और "बस मामले में" बाएं बाहरी शामिल हो गए।

बहरहाल, मेरा मानना ​​है कि आप एक आंतरिक जुड़ाव प्राप्त कर सकते हैं। उदाहरण के लिए, निम्नलिखित के कारण प्रदाता ने एक LEFT OUTER जॉइन बनाया:

var res2 = from a in ent.answers
           select new
           { a.Answer1, a.user.UserName };

हालांकि, एक INNER में निम्नलिखित परिणाम शामिल होते हैं:

res2 = from a in ent.answers
       join u in ent.users
       on a.UserID equals u.PK
       select new { a.Answer1, u.UserName };

साथ ही, निम्न इकाई SQL ने एक आंतरिक जुड़ाव उत्पन्न किया:

ObjectQuery<DbDataRecord> dr = ent.CreateQuery<DbDataRecord>( 
         "SELECT a.answer1, u.username " +
         "FROM answers as a inner join users as u on a.userid = u.pk" );



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक समय सीमा के भीतर 5 मिनट के अंतराल में समूह बनाना

  2. MySQL और Java - अंतिम सम्मिलित मूल्य (JDBC) की आईडी प्राप्त करें

  3. प्रतिकृति प्रबंधक ने कनेक्शन खोलने पर एक अपवाद फेंक दिया

  4. फ़ोरैच लूप में समूह दिनांक

  5. मेरे पास अपने ORDER BY को तेज करने के लिए क्या विकल्प हैं?