Mysql 使用2(多个)选择插入?

Mysql 使用2(多个)选择插入?,mysql,sql,select,insert,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 我试过这样的方法: INSERT INTO

我想做的是这样的:

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

我试过这样的方法:

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;
但是我不知道如何正确地写:/

我搜索了一下,但找不到我真正想要的。很抱歉,如果有人已经问过了


谢谢。

请使用类似的工具

 INSERT INTO c (aID, bID) 
 SELECT a.ID, B.ID 
 FROM A, B 
 WHERE A.Name='Nisha'
 AND B.Class='Java';
在您的情况下,应该是:(只需从WHERE子句中删除LIVRE


假设select查询只返回一行,如果select查询返回的行多于一行,则根据需要使用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) );

如果
SELECT
返回的行数超过1行,会发生什么情况?你是如何处理这种情况的?对于num_serie_产品来说,这是不可能的(这是一个PK),但是对于分销商来说,这是完全可能的:/If我把->c.distributeur=“Traffic Systems”放在这里,谢谢你非常清楚的回答。我修改了一个lil位,以确保它只返回1行。@Booba_uuu2012:谢谢。您可以选择此答案旁边的灰色勾选框进行投票并接受此答案!
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) );