हमारे पास MySQL आंतरिक जुड़ने के साथ कुछ विषम समस्याएं हैं। असल में, हमें '=' ऑपरेटर का उपयोग करते समय एक अजीब त्रुटि मिलती है लेकिन 'जैसे' का उपयोग करके यह काम करता है। दुर्भाग्यवश, यह ActiveRecord के माध्यम से है और इसके बजाय 'जैसे' को थप्पड़ मारने का कोई आसान तरीका नहीं है, साथ ही हम यह समझना चाहते हैं कि वास्तव में क्या हो रहा है।MySQL INNER JOIN - '=' बनाम 'जैसे'
ERROR 1296 (HY000): Got error 20008 'Query aborted due to out of query memory'
from NDBCLUSTER
क्वेरी कि काम करता है::
mysql> SELECT COUNT(*) FROM `versions` INNER JOIN `site_versions`
ON `versions`.id = `site_versions`.version_id;
यहाँ त्रुटि है:
क्वेरी कि विफल रहता है
mysql> SELECT COUNT(*) FROM `versions` INNER JOIN `site_versions`
ON `versions`.id like `site_versions`.version_id;
यहाँ पर कुछ विवरण हैं टेबल खुद:
mysql> desc site_versions;
+----------------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+----------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| version_id | int(11) | YES | MUL | NULL | |
[..snip..]
+----------------------+----------+------+-----+---------+----------------+
mysql> desc versions;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
[..snip..]
+------------+--------------+------+-----+---------+----------------+
कोई विचार क्यों 'जैसे' काम करता है और '=' नहीं करता है?
वास्तव में आपके द्वारा अपेक्षित परिणाम देने की तरह है? हो सकता है कि यह कुछ भी शामिल होने में असफल रहा हो (क्योंकि चींटियों के लिए क्या मतलब है?) और इसलिए स्मृति समस्या से बचने के लिए वैध क्वेरी ट्रिगर हो रही है। –
@andrewcooke - हम्म, 'जैसे' काम करते समय काम करता प्रतीत होता है: http://sqlfiddle.com/#!2/86792/1 –
यह प्रत्येक क्वेरी के 'व्याख्या' को दिखाने के लिए प्रश्न में भी मदद कर सकता है। –