首页 > 解决方案 > SQL:WITH子句如何引用column_name

问题描述

我将创建一些伪代码来解释我的问题:

WITH MAX_BES AS 
(SELECT MAX(ID) AS MAX_ID FROM TABLE1);

SELECT .....
FROM 
  TABLE2, TABLE3
WHERE
  TABLE2.ID IN (MAX_BES.MAX_ID);

上面的代码不起作用。我应该如何在 IN 子句中引用我的 WITH 子句中的列?

非常感谢您的快速反馈。

标签: sqlsubquerycommon-table-expression

解决方案


使用子选择并做出一个声明,而不是两个。

WITH max_bes AS (
  SELECT max(id) AS max_id 
  FROM table1
) --<< no ; here!
SELECT .....
FROM table2
  JOIN table3 ON ... ??
WHERE table2.id IN (SELECT max_id FROM max_bes);

推荐阅读