簡體   English   中英

如何使用select語句插入表中?

[英]How do I insert into a table with a select statement?

我有2個表連接表。 這是我的架構。

SOLDIERS
  SOLDIER_ID     integer
  FIRST_NAME  varchar(50)
  LAST_NAME   varchar(50)

RANKS
  RANK_ID        integer
  NAME        varchar(50)

SOLDIER_RANKS
  SOLDIER_ID     integer
  RANK_ID        integer

我試圖在SOLDIER_RANKS表中插入一行。 我知道SOLDIERid ,我知道RANKname 這是我嘗試過的,但我無法弄清楚如何硬編碼SOLDIER_ID

 INSERT INTO SOLDIER RANKS(SOLDIER_ID, RANK_ID)
  // Here I need to specify that SOLDIER_ID = 1
  SELECT RANK.RANK_ID WHERE RANK.NAME = 'COLONEL';

我該如何工作?

無需使用值子句:

INSERT INTO SOLDIER_RANKS(SOLDIER_ID, RANK_ID)
SELECT 1,
       RANK.RANK_ID
WHERE  RANK.NAME = 'COLONEL';
INSERT INTO SOLDIER_RANKS(SOLDIER_ID, RANK_ID)
values (
  -- Here I need to specify that SOLDIER_ID = 1
  1,  
  (SELECT RANK.RANK_ID from <rank-table-name> RANK WHERE RANK.NAME = 'COLONEL')
);

嘗試這些方法中的任何一種

INSERT INTO SOLDIER RANKS(SOLDIER_ID, RANK_ID)
values 
(
  1,  
  (SELECT RANK.RANK_ID FROM RANKS WHERE RANK.NAME = 'COLONEL')
);

要么

  INSERT INTO SOLDIER RANKS(SOLDIER_ID, RANK_ID)
  SELECT
  1,  
  RANK.RANK_ID 
  FROM RANKS WHERE RANK.NAME = 'COLONEL'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM