当前位置: 首页 > 知识库问答 >
问题:

如何从一个查询向另一个查询添加值

宗政和韵
2023-03-14

我正在使用React,使用NodeJS将数据发送到我的PostgreSQL数据库。我的songs表中有一个外键,它引用了albums表中的id。我的问题是,如何将我第一次插入的id返回到第二次插入的相册中?以下是我目前的代码

const addData = (request, response) => {
const uuid = uuidv4(); 

db.pool.query('INSERT INTO albums (title, date, description, id) VALUES ($1, $2, $3, $4) ON CONFLICT (id) DO NOTHING RETURNING *' , [request.body.title, request.body.date, request.body.description, uuid])
    .then(res => {
      console.log('INSERT ' + JSON.stringify(res.rows[0].id));
    }).then(() => {
       for (let i = 0; i < request.body.files.length; i++) {
        db.pool.query('INSERT INTO songs (id, name, link, index) VALUES ($1, $2, $3, $4) ON CONFLICT (album_id, index) DO NOTHING RETURNING *', [uuidv4(), request.body.files[i].name, request.body.files[i].link, request.body.files[i].index])
       }
    }).then(res => {
        console.log('INSERT INTO songs ' + JSON.stringify(res));
    }).catch(error => console.log(error));

}

我还没有将专辑id添加到我的歌曲插入中。我在等着看如何把唱片id的值输入到我的第二个插页中?

共有1个答案

宗政霄
2023-03-14

因为我在songs表中看不到album_id列,所以我没有为此编写查询。

您只需使用then(album_id)

const addData = (request, response) => {
const uuid = uuidv4(); 

db.pool.query('INSERT INTO albums (title, date, description, id) VALUES ($1, $2, $3, $4) ON CONFLICT (id) DO NOTHING RETURNING *' , [request.body.title, request.body.date, request.body.description, uuid])
    .then(res => {
      let album_id = res.rows[0].id;
      console.log('INSERT ' + JSON.stringify(res.rows[0].id));
    }).then((album_id) => {
       console.log("album_id " + album_id); 
       // here you will get the album id and now you can use it as per required.
        .....
        .....
      //   
    }).then(res => {
      console.log('INSERT INTO songs ' + JSON.stringify(res));
    }).catch(error => console.log(error));

}
 类似资料:
  • 我有两个表TABLE_A,列名为COLUMN1 COLUMN2 COLUMN3 COLUMN 4 COLUM5 abc def ghi jkl mno 123 456 789 001 121 TABLE_B列名为COLUMN6 COLUMN7,其数据为 专栏5 124 第4列bca 第3列aaa 列5 BBB 所以我将Table_A的列名作为Table_B中的数据 所以我想在一个查询中做这样的事情

  • 我正在尝试使用JPA Criteria API构建此查询 内部选择应获取3个属性来标识快照,然后外部选择将基于内部选择返回的3个属性获取快照的所有其他属性。 我成功地构建了内部选择,但是如何使用连接将外部选择与内部选择结合起来? 或者,可能有一种不同的方式来构造查询本身,即不包含子查询。。。 编辑: 类似查询:jpa标准api:使用subselect连接

  • 问题内容: 我进行了很多搜索,但找不到有用的答案: 我想通过用户给我一个开始和结束日期来列出用户定义的时间段的总计。从开始日期到开始日期之间的每次总计应该相加,并在每一天添加1天。因此最后一行给出了从开始到结束日期的总计。示例:-给定期间=开始2013-01-01,结束= 2013-01-31 所以我有一个查询谁计算所有天: 我有一个查询谁每天计算总数 现在将这两者结合起来很难得到我的最终结果。

  • Val1 Val2 Val3 Val4 Val5 Val6 Val7 Val8 Val9 Val10 Val11 Val12 Col1 Col2 Col3 Col4 Col5 Col6 Val1 Val2 Val3 Val4 Col5 Val5 Val1 Val2 Val3 Val4 Col6 Val6 Val1 Val2 Val3 Val4 Col7 Val7 Val1 Val2 Val3 Va

  • 我有一张地图,用户可以在其中选择一个县。我希望它能够做的是返回“成员”在该县的所有“遭遇”。 唯一的问题是,“county”不是我需要为其返回文档的索引字段(“county”是“member”索引中的字段,而我想从“Conferences”索引中返回文档)(它们由“memberId”链接)。 以下是我目前所做的,在一个县中获得成员。 但这将返回该县成员的文档列表。我需要它返回这些文档的member

  • 问题内容: 当photoId直接在语句上而不是变量时,以下代码完全没有问题。 但是以下内容将无法正常运行,这可能是导致未选择该内容的原因。 这是在while循环内。 谢谢。 问题答案: 在php a和a中有很大的不同,查询语法在查询周围是双引号,在变量周围是单引号。。尽管我建议您在查询中使用参数,而不是直接将变量直接放入查询中 根据我的建议,您应该将查询更改为此: 这只是它的基本要点…如果您想了解