我的两个表无法加入。跑步
EXPLAIN SELECT `A`.`id`
FROM `demo`.`A` AS `A`
INNER JOIN `demo`.`B` AS `B`
ON ( `A`.`id` = 'B.A_id' )
产量
extra="Impossible WHERE noticed after reading const tables"
结果。我所有的研究表明,这条消息应该意味着其中一个表是空的,或者 where 条件包含一些永远无法满足的条件,例如“where 1=0”。
为了隔离问题,我创建了数据库的副本并删除了除复制问题所需的表和行之外的所有内容。为了消除可能的问题,我删除了其中一张表上的所有索引。
我什至尝试过:
mysql> select * from A where id=23;
+----+
| id |
+----+
| 23 |
+----+
1 row in set (0.00 sec)
mysql> select * from B where A_id=23;
+------+------+
| A_id | B_id |
+------+------+
| 23 | 10 |
| 23 | 13 |
+------+------+
2 rows in set (0.00 sec)
所以这个连接应该至少产生一行。有些东西必须被打破,但我不知道是什么。