以下查询返回1行:
SELECT `coach_id` FROM `table_a` WHERE `coach_id` = 8 UNION ALL SELECT `coach_id` FROM `table_b` WHERE `coach_id` = 8
但SELECT coach_id FROM table_b WHERE coach_id = 8
返回2行.
并SELECT coach_id FROM table_a WHERE coach_id = 8
返回1行.
我正在使用UNION ALL
以避免DISTINCT
过滤,因为我实际上只对总行数感兴趣.它似乎表现得像普通的UNION
aka UNION DISTINCT
.
这里发生了什么?查询4.5.2
在MariaDB 10.1.9
Server 上的phpMyAdmin 接口中执行.
我刚刚发现mysql命令行客户端的行为与预期的一样.所以失败必须在我的堆栈中nginx 1.8.0
,PHP 5.6.16
mysqli
并且phpmyadmin
.
当我从php脚本运行查询(使用mysqli)时,它也正确地返回3行.我想除了phpMyAdmin之外什么都不会导致这种现象.感谢您的帮助到目前为止,对不起,这个问题一直存在误导.我不知道更好......