私はこのようなクエリを持っています。私はサブクエリでCOL1を使用することはできませんサブクエリでcolumnの値を使用するには?
SELECT col1,
(SELECT another_col1 FROM table1 WHERE table1.date = col1) AS some_col
FROM table1
ORDER BY id;
しかし、それは常に最後のレコードを返しますが、一致しません。
どうすればPostgreSQLで使用できますか?
私はこのようなクエリを持っています。私はサブクエリでCOL1を使用することはできませんサブクエリでcolumnの値を使用するには?
SELECT col1,
(SELECT another_col1 FROM table1 WHERE table1.date = col1) AS some_col
FROM table1
ORDER BY id;
しかし、それは常に最後のレコードを返しますが、一致しません。
どうすればPostgreSQLで使用できますか?
テーブルの別名を付ける必要があります。比較している列が一意でない限り、オプティマイザは現在のレベルであるE.G. - 相関クエリで比較し、内部テーブルが外部テーブルと同じ列名を持つ場合、オプティマイザは、内部テーブルの列と比較することを意味すると考えます。
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
今後の読者にとって、テーブルエイリアスが非常に役立つ理由を明確にする必要があります。P。 –
@JohnOdomあなたは正しいです:) – sagi
Thx!できます!!) – mxgoncharov
使用この
SELECT (SELECT another_col1 FROM table1 WHERE table1.date = col1) as
col1,(SELECT another_col1 FROM table1 WHERE table1.date = col1) AS
some_col FROM (select col1 as col1 from table1) as col1 ORDER BY id;
してください[編集]あなたの質問をし、いくつかのサンプルデータと予想される出力を追加します。 「*これは常に最後のレコードを返します」* –