我現在有兩個表有沒有辦法在SQL select中優化子查詢的數組?
question
--------
id
title, character varying
answer
--------
id
question_id
votes, integer
我用下面的查詢返回了我的問題的列表及其相應票數的數組:
SELECT question.id,
question.title,
ARRAY(SELECT votes
FROM answer
WHERE answer.question_id = question.id)
FROM question
ORDER BY question.id
輸出看起來像:
id | title | ?column?
----+----------+-----------------------------------------------------
100 | How to | {5,2,7}
101 | Where is | {0}
102 | What is | {1}
上述查詢可能需要近50秒才能運行數十萬個問題,其中每個問題至少可以有5個答案。有沒有一種方法來優化以上?
添加postgresql標籤b/c,看起來像特定於postgres的語法。如果這不是一個正確的評估,請隨時刪除標籤。 – bernie 2012-03-05 20:34:46
表「answer」的'votes'列的類型是什麼?它是一個數組還是一個整數值?我假設它是一個單一的'int'值。如果它是一個數組,則您的查詢不起作用。 – 2012-03-05 20:49:46
這是一個整數 – 2012-03-05 20:53:21