使用子查询和表别名的mysql奇怪行为

时间:2014-12-17 10:24:11

标签: mysql sql

我使用的是mysql Server版本:5.5.40-0ubuntu0.12.04.1-log(Ubuntu)

此查询没有表别名:(使用phpmyadmin执行)

select id from tableA where id IN
(
  SELECT tableA.id FROM 
         tableA,link_table_A_and_B, tableB WHERE
         tableA.deleted=0 AND 
         tableA.id = link_table_A_and_B.id_to_A AND  
         tableB.id = link_table_A_and_B.id_to_B AND tableB.name LIKE '%xxx%')

会产生 102行,并且在此查询中包含表别名:

select id from tableA where id IN
(
  SELECT cand.id FROM 
         tableA cand,link_table_A_and_B link, tableB exp WHERE
         cand.deleted=0 AND 
         cand.id = link.id_to_A AND  
         exp.id = link.id_to_B AND exp.name LIKE '%xxx%')

会产生 192行

怎么可能? (在我的遗留数据库中,所涉及的表具有长名称,以及长FK名称。) 此致

0 个答案:

没有答案