अरे दोस्तों मैं इस पर अपने सिर खरोंच कर रहा हूं, मुझे उम्मीद है कि कोई इसे के लिए समझा सकता है। ईमानदारी से मैं थोड़ा डर रहा हूं कि यह मुझे बाद में गधे में काट सकता है ....MYSQL जॉइन अप्रत्याशित (लेकिन सुखद) परिणाम देता है?
तो, मेरे पास तीन टेबल हैं जो मैं वर्तमान में खींच रहा हूं। reports
, berries
और melons
। मैंने अपनी क्वेरी इस तरह स्थापित की है, और यह मुझे वही बनाता है जो मैं चाहता हूं।
SELECT
rpt.*,
ber.shipper, ber.po, ber.commodity, ber.label
FROM reports rpt
LEFT JOIN berries ber ON rpt.inspection_number = ber.report_key
LEFT JOIN melons mel ON rpt.inspection_number = mel.report_key
WHERE rpt.status='1' OR rpt.status='0'
ORDER BY rpt.inspection_number DESC
मैं अपने प्रत्याशित प्रतिफल जो
key | role | region | inspection_type | inspection_number | shipper | po | commodity | label
3 | NULL | Seattle | melons | 5555 | Shipper1 | PO2 | Commodity2 | Label2
2 | NULL | Seattle | berries | 1023 | Shipper1 | PO1 | Commodity1 | Label1
है, हालांकि मैं अपने बयान से LEFT JOIN melons mel ON rpt.inspection_number = mel.report_key
को दूर मैं बिल्कुल वही चीज़ मिल हो रही है .... मैं कभी नहीं उल्लेख किया melons
??
अगर मैं संशोधित और जामुन
SELECT
rpt.*,
ber.shipper, ber.po, ber.commodity, ber.label
FROM reports rpt
JOIN berries ber ON rpt.inspection_number = ber.report_key
WHERE rpt.status='1' OR rpt.status='0'
ORDER BY rpt.inspection_number DESC
के लिए बजाय JOIN
का उपयोग यह पैदा करता है मेरी अपेक्षा यह होना चाहिए!
key | role | region | inspection_type | inspection_number | shipper | po | commodity | label
2 | NULL | Seattle | berries | 1023 | Shipper1 | PO1 | Commodity1 | Label1
लेकिन अब की तरह मेरे एसक्यूएल बयान को संशोधित करने की कोशिश कर रहा ....
SELECT
rpt.*,
ber.shipper, ber.po, ber.commodity, ber.label
mel.shipper, mel.po, mel.commodity, mel.label
FROM reports rpt
JOIN berries ber ON rpt.inspection_number = ber.report_key
JOIN melons mel ON rpt.inspection_number = mel.report_key
WHERE rpt.status='1' OR rpt.status='0'
ORDER BY rpt.inspection_number DESC
जाल मुझे ....
MySQL returned an empty result set (i.e. zero rows). (Query took 0.0011 sec)
मुझे बड़ा बीच की उँगली देता है। क्या बकवास है? क्या कोई बता सकता है कि मैं स्पष्ट रूप से गलत कर रहा हूं, और इसे कैसे ठीक किया जाए?
क्या यह बदले में उसी तालिका में जामुन और खरबूजे होने का अर्थ होगा? –
मेरी इच्छा है कि मैं कर सकता हूं, लेकिन वास्तव में हमारे पास लगभग 12 फल प्रकार हैं, जिनमें से सभी के अपने अलग-अलग क्षेत्र हैं। उन्हें सहारा देने की कोशिश कर रहे हैं, और उनका सहारा लेना एक दुःस्वप्न होगा .... अच्छा सवाल हालांकि! – ehime
मेरा मानना है कि आपको 'बाएं जॉइन' के साथ 'मेल' के साथ और बिना एक ही परिणाम मिलेंगे, लेकिन मुझे आपके परिणामों पर विश्वास नहीं है। प्रत्येक तरबूज पंक्ति के लिए 'शिपर', 'पीओ', और अन्य 'बियर' कॉलम न्यूल होंगे। –