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

कई तालिकाओं में से प्रत्येक में और उसके बीच परीक्षण कैसे करें?

खैर लियोनिद सही टेबल जॉइन है जो आपको चाहिए। "एक SQL जॉइन क्लॉज का उपयोग दो या दो से अधिक तालिकाओं से पंक्तियों को संयोजित करने के लिए किया जाता है, जो उनके बीच एक सामान्य क्षेत्र पर आधारित होता है।" - http://www.w3schools.com/sql/sql_join.asp इतना ही आसान। आप टेबल ए और टेबल बी के लिए कहते हैं कि सामान्य क्षेत्र शॉपलॉट है और टेबल बी और सी के लिए कंटेनररफ कंटेनर आईडी से मेल खाता है।

आइए ट्रे को चरण दर चरण करते हैं।

तो सबसे पहले हम उन टेबलों में से कॉलम चुनें जिन्हें हम दिखाना चाहते हैं

 SELECT Table_A.ID, Table_A.UnitTypeID, Table_A.ShopLot, Table_B.ID, Table_B.UnitTypeID,
         Table_B.ContainerRef, Table_C.ID, Table_C.PartTypeID

आप देखते हैं कि शॉपलॉट और कंटेनररफ केवल एक ही है क्योंकि यह सामान्य फ़ील्ड है जैसा कि हमने पहले कहा था और एक ही तारीख को एक पंक्ति में दो बार दिखाने की कोई आवश्यकता नहीं है।

अगला कदम यह देखना होगा कि हम इस कॉलम को कहां से चुनें। इस चरण में हम इस अलग टेबल से पंक्तियों को जोड़ते हैं और मूल रूप से चुनिंदा स्टेटमेंट से इन सभी कॉलमों के साथ एक टेबल बनाते हैं। यह इस तरह दिखेगा

FROM Table_A
INNER JOIN Table_B
ON Table_A.ShopLot = Table_B.ShopLot
INNER JOIN Table_C
ON Table_B.ContainerRef = Table_C.ContainerId

यहाँ क्या हुआ है। पहले हमने कहा कि Table_A से चुनें (कुछ) और (आंतरिक) उसे Table_B के साथ शामिल करें ... और उत्तर Table_A.ShopLot और Table_B.ShopLot फ़ील्ड पर है। Table_A से एक पंक्ति लें, ShopLot फ़ील्ड का मान देखें और Table_B में उस मान के साथ सभी पंक्तियों को खोजें (यदि है तो) और उनसे जुड़ें। Table_C उसी तरह जुड़ता है जैसे केवल फ़ील्ड का नाम बदला जाता है।

तीसरे चरण की तुलना में WHERE क्लॉज बनाना है। यह शायद सबसे आसान हिस्सा है क्योंकि अब हमारे पास एक बड़ी टेबल है और हमें बस वही कहना है जो हमें चाहिए

WHERE Table_A.UnitTypeID='PAD' AND Table_B.UnitType.ID='FROG' 
  AND Table_C.PartTypeID='FLIES'

और बस। मैंने जितना हो सके इसे सरल बनाने की कोशिश की। मुझे यकीन है कि ऑनलाइन बहुत अधिक स्पष्टीकरण है, बस थोड़ी खोज करने की जरूरत है...

यहाँ एक पूरा कोड है:

SELECT Table_A.ID, Table_A.UnitTypeID, Table_A.ShopLot, Table_B.ID, Table_B.UnitTypeID,
         Table_B.ContainerRef, Table_C.ID, Table_C.PartTypeID
FROM Table_A
INNER JOIN Table_B
ON Table_A.ShopLot = Table_B.ShopLot
INNER JOIN Table_C
ON Table_B.ContainerRef = Table_C.ContainerId

WHERE Table_A.UnitTypeID='PAD' AND Table_B.UnitType.ID='FROG' 
  AND Table_C.PartTypeID='FLIES'

मुझे उम्मीद है कि इससे थोड़ी मदद मिलेगी, यह जटिल नहीं है क्योंकि यह पहली नज़र में है। यह बेहतर होगा यदि उदाहरण दो टेबल के साथ हो लेकिन यह वही है। जीएल



  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:यदि मैं SQL क्वेरी में एक से अधिक बार किसी फ़ंक्शन का उपयोग करता हूं तो क्या यह हर बार फिर से गणना की जाएगी?

  2. java.lang.IncompatibleClassChangeError:com.mysql.jdbc.Statement वर्ग मिला, लेकिन इंटरफ़ेस अपेक्षित था

  3. codeigniter में where_in से सिंगल कोट्स हटाएं

  4. MySQL को पिछले 12 महीनों से महीने के हिसाब से मात्रा मिलती है

  5. MySQL में ओवरहेड का क्या अर्थ है, इसके बारे में क्या बुरा है, और इसे कैसे ठीक किया जाए?