![](/img/trans.png)
[英]How do I use (probably) a temp table instead of all these SELECT statements inside my INSERT statement?
[英]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
表中插入一行。 我知道SOLDIER
的id
,我知道RANK
的name
。 這是我嘗試過的,但我無法弄清楚如何硬編碼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.