sql - mysql three joins -


मुझे mysql के साथ एक समस्या है

मेरे पास 3 टेबल हैं:

 < कोड> जमा + ------------------- + ------------- + ------ + ----- + | फील्ड | प्रकार | नल | कुंजी | + ------------------- + ------------- + ------ + ----- + | आईडी | बिल्टीन्ट (20) | नहीं | पीआरआई | | स्थिति | इंट (2) | नहीं | | | जमा राशि | दिन-समय | नहीं | मुल | | रिवर्स पेमेंट_आईडी | बिल्टीन्ट (20) | हां | संयुक्त राष्ट्र | | Claim_id | इंट (2) | नहीं | संयुक्त राष्ट्र | | भुगतान_आईडी | बिल्टीन्ट (20) | हां | संयुक्त राष्ट्र | + ------------------- + ------------- + ------ + ----- +  

भुगतान

  + -------------------------- + - ------------- + ------ + ----- + | फील्ड | प्रकार | नल | कुंजी | + -------------------------- + --------------- + ------ + ----- + | आईडी | इंट (10) | नहीं | पीआरआई | | भुगतान दिनांक | टाइमस्टैम्प | नहीं | मुल | | पिन | इंट (10) | नहीं | मुल | | बैलेंस बदलें | दशमलव (15, 2) | हां | |  

दावा

  + ------------------------ + - ------------ + ------ + ----- + | फील्ड | प्रकार | नल | कुंजी | + ------------------------ + -------------- + ------ + - --- + | आईडी | इंट (11) | नहीं | पीआरआई | | पूर्णनाम | Varchar (100) | नहीं | | | जमाआम | ब्लॉब | नहीं | | | आईपी ​​| Varchar (3 9) | नहीं | | | स्थिति | इंट (2) | नहीं | | + ------------------------ + -------------- + ------ + - --- +  

मैं जमा (दावों के साथ) भुगतान या रिवर्स पेमेंट को दो तिथियों के बीच चुनने का प्रयास करता हूं, मैं इस क्वेरी को 3 में शामिल करता हूं:

  EXPLEN SELECT this_.id as id60_3_, ..., fcpayment2_.id as id59_0_, ..., reversepay3_.id एएस आईडी 59_1_, ..., cl1_.id के रूप में आईडी 61_2_, ... जमा से यह IN_ER जमा करें भुगतान fcpayment2_ इस पर _ .payment_id = fcpayment2_.id LEFT OUTER JOIN भुगतान रिवर्सपेय 3_ ON this_.reversePayment_id = रिवरपैस 3_.id इनर जॉइन करें CL1_ ON this_.claim_id = cl1_.id WHERE ((fcpayment2_.paymentDate & gt; = '2010-08-04 21:00: 00 'और fcpayment2_.paymentDate & lt; =' 2010-08-05 08:01:00 ') या (रिवर्सपेय 3_.paymentDate & gt; =' 2010-08-04 21:00:00 'और रिवर्सपेय 3_पएमेंटडेट & lt; =' 2010-08-05 08:01:00 ')) ORDER BY__DepositDate DESC  

परिणाम है

  + ---- + - ------------ + -------------- + -------- + ------------- -------------------------------------------------- ----- + ---- ------ + --------- + --------------------------------- -------- + -------- + -------------------------------- - + | आईडी | Select_type | टेबल | प्रकार | संभव_कीज | कुंजी | Key_len | रेफरी | पंक्तियाँ | अतिरिक्त | + ---- + ------------- + -------------- + -------- + ------ -------------------------------------------------- ------------ + ---------- + --------- + ---------------- ------------------------- + -------- + --------------- ------------------ + | 1 | सरल | Cl1_ | सभी | प्राथमिक | नल | नल | नल | 426588 | अस्थायी का उपयोग करना; फाइलोर्ट का उपयोग करना | | 1 | सरल | यह_ | Eq_ref | Claim_id, भुगतान_आईडी, एफकेडीबी 5 ए0548511 बी 6 सीडीडी, एफकेडीबी 5 ए054867 बीए 4108 | Claim_id | 4 | Portal.cl1_.id | 1 | | | 1 | सरल | Fcpayment2_ | Eq_ref | प्राथमिक, भुगतान दिनांक, तिथि | प्राथमिक | 4 | Portal.this_.payment_id | 1 | जहां का उपयोग करना | | 1 | सरल | रिवर्सपेय 3_ | Eq_ref | प्राथमिक | प्राथमिक | 4 | Portal.this_.reversePayment_id | 1 | जहां का उपयोग करना | + ---- + ------------- + -------------- + -------- + ------ -------------------------------------------------- ------------ + ---------- + --------- + ---------------- ------------------------- + -------- + --------------- ------------------ +  

क्यों परिणाम में पहली तालिका cl1_ है और क्यों mysql कुंजी का उपयोग नहीं करता है?

क्योंकि आपने 'स्पष्टीकरण' शब्द का प्रयोग किया है, और क्योंकि cl1_ वह उपनाम है जिसे आपने दिया था आपकी क्वेरी में तालिका।

मुझे कुंजी के बारे में आपका प्रश्न नहीं समझता।


Comments

Popular posts from this blog

Eclipse CDT variable colors in editor -

AJAX doesn't send POST query -

wpf - Custom Message Box Advice -