MYSQL:如何根据其他两个表的条​​件在表中插入行

时间:2015-06-02 09:49:05

标签: mysql

设置如下:

表A包含列desc和日期

表B包含列desc,日期和任务

表C有列keyid和type。

我想要做的是将表B中的一些行复制到表A,其中A.desc应该是B.desc,而A.date应该是B.date。要选择要复制的行,逻辑是:"所有行,例如B.task = C.keyid AND C.type =' 1'"。

如果我想只选择要复制的行,则查询将是:

SELECT B.desc, B.date FROM B,C WHERE B.task=C.keyid AND C.type='1'

由该选择产生的行需要复制到A.我知道如何编写select,但是如何编写INSERT INTO查询?

3 个答案:

答案 0 :(得分:1)

此未经测试的查询应该有效:

insert into tableA (tableA.desc, tableA.data) SELECT B.desc, B.date FROM B,C WHERE B.task=C.keyid AND C.type='1'

答案 1 :(得分:0)

您可以运行此查询:

   db.query(sql, function (err, rows1) {
     db.query(sql, function (err, rows2) {
        db.query(sql, function (err, rows3) {
           db.query(sql, function (err, rows4) {
               var result = {};
               var res = {};
               var order = {};
               result["firstROW"] = rows1;
               result["secondROW"] = rows2;
               result["forthROW"] = rows3;
               result["fifthtROW"] = rows4;

              res[order] = result;
              res['result'] = "success";
              res['message'] = "ok";
              callback(res);
             })
         })
        })
      })
   }

我希望它会有所帮助。

答案 2 :(得分:-1)

你可以试试这个:

INSERT INTO table_A (desc, date)
SELECT B.desc, B.date FROM table_B as B,table_C as C WHERE B.task=C.keyid AND C.type='1'