【问题标题】:SQL Insert Table with Select使用 Select 插入表的 SQL
【发布时间】:2013-05-28 23:05:19
【问题描述】:

如何使用 select 语句插入表中。 first_name、last_name 和 id_no 来自staff 表,但我也想将值 1 插入到 department 表中,但它不是来自 staff 表。

INSERT INTO department ('1',  id_no, first_name, last_name)
SELECT FROM staff
WHERE id_no = 1;

我在 oracle 中使用 SQL 开发人员

【问题讨论】:

  • 你能显示部门表的结构吗?或者只是要插入的字段名称。

标签: sql database oracle


【解决方案1】:
INSERT INTO department(OTHER_COLUMN,id_no, first_name, last_name) 
SELECT '1',  id_no, first_name, last_name FROM staff WHERE id_no = 1

将 OTHER_COLUMN 替换为列名

【讨论】:

    【解决方案2】:

    如果 "department" 有这四列的顺序,那么你就非常接近了。

    INSERT INTO department (foo,  id_no, first_name, last_name)
    SELECT 1, staff_id, staff_first_name, staff_last_name
    FROM staff
    WHERE id_no = 1;
    

    (显然在SELECT 中适当更改列名) 当然,这将只插入一行,假设 id_no 是唯一的。

    【讨论】:

      【解决方案3】:

      我想你会在这里找到问题的答案:INSERT Statement

      如果您添加到帖子中的 SQL 是您尝试过的 - 它不起作用,因为它说 FROMM - double M. 将其更改为 FROM 并且它可能会起作用...

      【讨论】:

        【解决方案4】:

        这是无效的 SQL。假设staffdepartment具有相同的字段名

        INSERT INTO department(id_no, first_name, last_name)
        SELECT id_no, first_name, last_name
        FROM staff
        WHERE id_no = 1;
        

        【讨论】:

          【解决方案5】:

          SELECTINSERT INTO 表值,您需要编写如下内容:

          INSERT INTO department (dep_field1, dep_field2, dep_field3)
          SELECT '1', staff_field1, staff_field2
          FROM staff
          WHERE condition;
          

          department (...) 部分,您需要department 表中的名称字段,您要插入其中。

          SELECT 中,您需要从staff 表中命名字段,并从中进行选择。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-03-05
            • 1970-01-01
            • 2021-05-08
            • 1970-01-01
            • 2014-01-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多