mysql - 在阅读 const 表后不可能注意到

标签 mysql inner-join

我的两个表无法加入。运行

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)

所以这个连接应该至少产生一行。必须打破某些东西,但我不知道是什么。

参见 https://gist.github.com/3150634

最佳答案

您在 where 条件中使用了错误的字符。将 ' 替换为 `:

SELECT  `A`.`id` 
FROM  `demo`.`A` AS  `A` 
INNER JOIN  `demo`.`B` AS  `B` 
ON (  `A`.`id` = `B`.`A_id` )

关于mysql - 在阅读 const 表后不可能注意到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11580614/

相关文章:

php - 需要此 Mysql PHP 日期的最佳方法

具有长 WHERE AND OR 语法的 MySQL MATCH AGAINST 查询?

mysql - 如何从创建虚拟列的表中获取不同的值 'types' - MySQL

grails - Grails/groovy/GORM执行内部联接之类的查询

python - 内部加入巨大的数据框(约 200 万列)

ruby-on-rails - rails 2 :joins and :include resultset

mysql - 带有子查询的选择中的上层表可见性

php - Laravel 5 Hasmanythrough 逆向查询

mysql - 如何选择两列最大值的位置

sql - 左连接和内连接的区别......永远一次