插入2(多个)选择?

时间:2014-07-14 10:16:16

标签: mysql sql select insert

我想做的是这样的事情:

INSERT INTO LIVRE (id_livre, id_client, id_produit)
VALUES (
  null,
  SELECT id_client from CLIENT where distributeur like "%Traffic%", 
  SELECT id_produit from PRODUIT where num_serie_produit = 1401000
);

是否可以使用1个SELECT?

我尝试过类似的事情:

INSERT INTO LIVRE (id_livre,id_client,id_produit) 
SELECT
  null,
  C.id_client,
  P.id_produit 
FROM
  LIVRE, CLIENT C, PRODUIT P
WHERE
  C.distributeur like "%Traffic%"
  AND P.num_serie_produit = 1401000;

但我不知道怎么写得正确:/

我搜索过但我无法找到我真正想要的东西。很抱歉,如果有人已经问过它。

感谢。

1 个答案:

答案 0 :(得分:3)

使用类似的东西。

 INSERT INTO c (aID, bID) 
 SELECT a.ID, B.ID 
 FROM A, B 
 WHERE A.Name='Nisha'
 AND B.Class='Java';

在你的情况下,它将是:(刚刚从WHERE CLAUSE中删除生活

INSERT INTO LIVRE (id_livre,id_client,id_produit) 
SELECT null, C.id_client,P.id_produit 
FROM CLIENT C, PRODUIT P
WHERE C.distributeur like "%Traffic%"
    AND P.num_serie_produit = 1401000;

假设select查询只返回一行,如果select查询返回的行超过1行,则根据下面的查询使用rownum或limit函数。

INSERT INTO LIVRE (id_livre, id_client, id_produit)
VALUES 
(null, 
(SELECT id_client from *CLIENT* where distributeur like "%Traffic%"), 
(SELECT id_produit from *PRODUIT* where num_serie_produit = 1401000) );