У нас возникли странные проблемы с внутренними соединениями MySQL. По сути, мы получаем нечетную ошибку при использовании оператора '=', но вместо этого использование 'like' заставляет его работать. К сожалению, это через ActiveRecord, и нет простого способа просто поставить «нравится» вместо этого, плюс мы хотим понять, что на самом деле здесь происходит.
Вот запрос, который не работает:
mysql> SELECT COUNT(*) FROM `versions` INNER JOIN `site_versions`
ON `versions`.id = `site_versions`.version_id;
Вот ошибка:
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 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..]
+------------+--------------+------+-----+---------+----------------+
Любые идеи, почему 'like' работает, а '=' нет?