2017-06-19 61 views
0

插入表與值I有2個表,productclient從另一個

我想根據我的客戶表中的行的數量在我的產品表中的行插入:

INSERT INTO product (
    id, 
    NAME, 
    client_id 
) 
VALUES (
    productSequence.nextval, 
    'myProd', 
    SELECT client_id FROM client 
); 

此查詢是錯誤的,導致select client_id from client返回多行!

我無法找到如何做到這一點

+1

你在哪裏得到productSequence.nextval而來? –

+0

當我使用db2數據庫時,每個表都有一個序列來生成id。 – junior

回答

1

使用SELECT語句而不是VALUES,這將產生1排在client表中的每個客戶端,這樣,如果你有3條記錄client你將有3插入在product

insert into product(id, name, client_id) 
select productSequence.nextval, 'myProd', client_id from client 

如果idIDENTITY列記錄(數據庫提供的值)在表product不應該在所有的在你的聲明中提出這樣的話這將是:

insert into product(name, client_id) 
select 'myProd', client_id from client 
+0

插入產品(id,name,client_id) select productSequence.nextval,'myProd',客戶端client_id爲我工作:) 非常感謝 – junior

+0

@junior - 很高興爲您提供幫助。請考慮在15分鐘寬限期過期後使用答案左側的複選標記標記答案。 – Igor

1

我不知道productSequence.nextval來自哪裏。 但基本上它是一個INSERT-SELECT語句象下面這樣:

INSERT INTO product 
SELECT productSequence.nextval 
     ,'myProd' 
     ,client_id 
    FROM client 
; 

告訴我在哪裏列productSequence.nextval是從哪裏來的,我會更新我的發言

+0

我使用db2數據庫,爲每個表我有一個序列來生成id。 productSequence是我用於產品表的序列。 – junior