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