sqlite查询中的子查询替换

时间:2018-08-29 09:53:18

标签: sql sqlite

我是SQLite和SQL的新手。我正在处理一些嵌套查询,发现我反复使用了一些子查询。我想知道是否有任何方法可以简化查询以提高可读性。考虑以下查询。

SELECT *
FROM
    table1
INNER JOIN
(
    SELECT *
    FROM
        table2
    WHERE
        col1=1234
) t
ON table1.col3=t.col5

我想通过等同于以下内容(在C宏语法中)的方式简化此操作:

#define MYMACRO(X) SELECT * FROM table2 WHERE col1=X
SELECT * FROM table1 INNER JOIN MYMACRO(1234) t ON table1.col3=t.col5

这可能吗?

注意:我知道我可以简化第一个查询,以免嵌套。我只是用它来解释我的问题。

1 个答案:

答案 0 :(得分:0)

您要寻找的是关键字。

With MyMacro AS SELECT * FROM table2 WHERE col1=@parameter

SELECT * FROM table1 INNER JOIN MyMacro ON table1.col3=MyMacro.col5