2016-10-06 48 views
0

以下是我的要求示例。我有兩個表格。用戶表和我進入食品用戶的另一張桌子喜歡。postgresql:INSERT INTO ...(SELECT * ...,「fixed value」)

Class User{ 
    long id 
} 

class UserFood{ 
    Long id (auto-generated) 
    long user_id 
    String food 
} 

在我的db我有幾百條記錄。現在,我要帶誰擁有食品「法國吐司」所有用戶從UserFood表並添加「橙汁」

所以我正在尋找類似下面的

insert into user_food (user_id,food) values (select user_id from user_food where food="French Toast","Orange Juice"); 

的INSERT語句當我運行上面的查詢我得到以下錯誤

syntax error at or near "select" 

有沒有解決方案呢?

在此先感謝

+1

如果你想使用'select'不使用'values' –

回答

0

下面的查詢將加入橙汁記錄誰至少有一個法國吐司記錄所有用戶。

INSERT INTO user_food (user_id, food) 
SELECT DISTINCT user_id, 'Orange Juice' 
FROM user_food 
WHERE user_id IN (SELECT user_id FROM user_food WHERE food = 'French Toast') 
+0

謝謝,我能夠有輕微的修改,我們的答案得到解決:'INSERT INTO user_food(USER_ID,食品) SELECT distinct user_id,'Orange Juice' FROM user_food WHERE user_id IN(SELECT distinct user_id FROM user_food WHERE food ='French Toast')' – Visahan

+0

@Visahan您不需要子查詢中的DISTINCT,因爲它不會改變邏輯或結果。 –