mysql - 带有 `from A inner join B ...LIMIT x,y` 的 MySQL 查询是在从表 A 中获取 y 行之前还是之后执行连接?

标签 mysql join

对于下面的命令

  1. MySQL 是在获取 100 行之前还是之后进行连接? 表A?
  2. 有没有办法重写查询来获取行 在进行连接之前从表 A 中获取?

    SELECT
       A.START_TIME, A.F1, A.F2, B.STRING
    FROM    
       A INNER JOIN B ON A.B_ID=B.ID
    WHERE
       A.START_TIME>= '2015-03-22 05:23:44'
    LIMIT 0, 100;
    

最佳答案

  1. 不,该限制将在合并数据集连接之后应用。
  2. 如果您只想在连接之前对表 A 应用限制,则需要使用子查询:

SELECT T.START_TIME, T.F1, T.F2, B.STRING FROM<br/> (select A.START_TIME, A.F1, A.F2 from A WHERE A.START_TIME>= '2015-03-22 05:23:44' limit 0, 100) T INNER JOIN B ON T.B_ID=B.ID;

关于mysql - 带有 `from A inner join B ...LIMIT x,y` 的 MySQL 查询是在从表 A 中获取 y 行之前还是之后执行连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34052561/

相关文章:

mysql - 合并两个表中的数据 SQL

php - MySQL,连接多个表而不是连接?

MySql LEFT JOIN 只返回另一个表中的一个 NULL 行

mysql - SQL 从另一个表中的另一列更新一列

mysql - 数据库输入副本

mysql - 使用 MySQL 如何更好地选择所有人及其工作,排除从事特定工作的人?

mysql - Sql 中的过滤语句优先级(尤其是连接)

mysql - SQL JOIN 2 条件

php - PHP 中列的总和

mysql - 从mysql执行系统命令