postgresql:INSERT INTO ...(SELECT * ...,“固定值”)

时间:2016-10-06 05:52:19

标签: sql postgresql

以下是我的要求的示例。我有2个表。用户表和我输入食物用户喜欢的另一个表。

Class User{
    long id
}

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

在我的数据库中,我有几百条记录。现在我想从UserFood表中获取所有用户的食物“French Toast”并添加“Orange Juice”

所以我正在寻找类似于以下

的插入语句
insert into user_food (user_id,food) values (select user_id from user_food where food="French Toast","Orange Juice");

当我运行上述查询时,我收到以下错误

syntax error at or near "select"

有解决方法吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

以下查询将为所有至少有一个法国吐司记录的用户添加橙汁记录。

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')