首页 > 解决方案 > ORDER BY 不能引用外部查询列?

问题描述

有问题的 SQL 是这样的,

CREATE TABLE myTable ( 
    myTableId INT NOT NULL
);

CREATE TABLE otherTable ( 
    otherTableId INT NOT NULL
);

SELECT
    (
        SELECT
            1
        FROM
            otherTable
        ORDER BY
            myTable.myTableId / otherTable.otherTableId ASC
        LIMIT 1
    )
FROM
    myTable;

SQLite 3.30 数据库小提琴

使用 SQLite 执行上述操作时,我得到,

错误:SQLITE_ERROR:没有这样的列:myTable.myTableId

但是,它适用于MySQLPostgreSQLMS SQL


该查询是人为的,没有多大意义。

但是,我没有看到不允许在ORDER BY子句中使用外部查询引用的充分理由。

有谁知道为什么SQLite 禁止这样做?

我在https://sqlite.org/lang_select.html中找不到任何关于它的内容。

标签: sqlite

解决方案


推荐阅读