如何从另一个表和用户输入插入表?

时间:2014-02-06 05:15:14

标签: mysql sql

我想做的是这样的事情

INSERT INTO BOOKS(borrower_name,isbn) VALUES("Jane",SELECT isbn from TABLE...);

这显然是错误的。但是我试图获得一些可以按照这种方式工作的东西(如果有的话)。

4 个答案:

答案 0 :(得分:4)

非常关闭

INSERT INTO books (borrower_name, isbn) 
SELECT 'Jane', isbn 
  FROM table_name
-- WHERE id = ? 

您可能希望使用table_name子句和正确的条件来限制来自WHERE的行数

这是 SQLFiddle 演示


如果您打算从SELECT 返回仅标量值(只有一个ISBN),那么您首先正确并且可以'在您的问题中显示使用的语法

INSERT INTO books (borrower_name,isbn) 
VALUES ('Jane', 
        (
          SELECT isbn 
            FROM table_name
           WHERE id = 1
        ));

这是 SQLFiddle 演示

答案 1 :(得分:2)

你所做的也是对的,你只是错过()选择陈述:

INSERT INTO BOOKS(borrower_name,isbn) VALUES("Jane",SELECT isbn from TABLE...);

应修改为:

INSERT INTO BOOKS(borrower_name,isbn) VALUES("Jane",(SELECT isbn from TABLE...));

它会很好用!!这是SQLFiddle demo

答案 2 :(得分:1)

INSERT INTO BOOKS(borrower_name,isbn)  
SELECT 'Jane', isbn from TABLE

答案 3 :(得分:1)

检查我的答案...  例:  我有两个表Employee和Client

Insert into Employee (name, city) values((select name from client where id=2),'example');

遵循此方法