2016-10-06 12 views
0

以下は、私が持っている要件の例です。私は2つのテーブルを持っています。ユーザテーブルと、私が食品ユーザーが好きなテーブルに入る別のテーブル。postgresql:INSERT INTO ...(SELECT * ...、 "固定値")

Class User{ 
    long id 
} 

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

私のデータベースには数百のレコードがあります。今、私は、だから私は、次の

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

私のようなINSERT文を探している食品「フレンチトースト」を持っているUserFoodテーブルからすべてのユーザのを取ると「オレンジジュース」

を追加します上記のクエリを実行すると、次のエラーが表示されます。

syntax error at or near "select" 

解決方法はありますか?事前

+1

あなたは '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

感謝を使用していない' SELECT'を使用したい場合は、私たちの答えをわずかに変更して解決策を得ることができた: 'user_food(user_idは、食品)。INSERT INTO – Visahan

+0

@Visahanサブクエリでは 'DISTINCT'は必要ありません。サブクエリでは不要です。サブクエリでは' DISTINCT'は必要ありません。論理または結果を変更する。 –