MySQL 내부 조인에 이상한 문제가 있습니다. 기본적으로 '='연산자를 사용할 때 이상한 오류가 발생하지만 대신 '좋아요'를 사용하면 오류가 발생합니다. 안타깝게도 ActiveRecord를 통해이 작업을 수행 할 수 있습니다. 대신 '좋아요'를 누르기 만하면됩니다. 여기에 실제로 무엇이 일어나고 있는지 이해하고 싶습니다. 여기 MySQL INNER JOIN - '='vs 'like'
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..]
+------------+--------------+------+-----+---------+----------------+
왜 '좋아요'와 '='가 작동하지 않는지 알고 싶습니다.
실제로 기대하는 결과를주는 것과 비슷합니까? 어쩌면 그냥 아무것도 가입하지 못했습니다 (왜냐하면 int는 무엇을 의미합니까?) 그리고 유효한 쿼리가 트리거하는 메모리 문제를 피할 수 있습니다. –
@andrewcooke - 흠,'like'는 그런 식으로 사용할 때 작동하는 것 같습니다 : http://sqlfiddle.com/#!2/86792/1 –
또한 각 쿼리의'explain'을 보여주는 데 도움이 될 수도 있습니다. –