mxg*_*rov 4 sql postgresql postgresql-9.4
我有这样的查询。
SELECT col1,
(SELECT another_col1 FROM table1 WHERE table1.date = col1) AS some_col
FROM table1
ORDER BY id;
Run Code Online (Sandbox Code Playgroud)
但是我不能在子查询中使用col1,它总是返回最后一条记录,但不匹配。
如何在PostgreSQL中使用它?
您应该为表加上别名!除非要比较的列是唯一的,否则优化器将采用其当前级别EG的每一列-如果您要在相关查询中进行比较,并且内部表与外部表具有相同的列名,那么优化器会认为您表示比较内部表中的列。
SELECT t.col1,
(SELECT s.another_col1 FROM Table1 s WHERE s.date = t.col1) as some_col
FROM table1 t
ORDER BY t.id
Run Code Online (Sandbox Code Playgroud)