0

这里有两张表:

表格1:

CustomerId  | CustomerName

表 2:

OrderId  | OrderNo  | CustomerId

现在我想通过使用单个查询将记录插入到表 2 中,即

Insert Into Table2 (OrderId,OrderNo,CustomerId) values (1,2456,( if select CustomerId from Customer where CustomerName = 'abc' is non-zero return id else insert into customer (CustomerId,CustomerName) values (1,'abc') return newly added customerid)

注意:ID 是自动生成的,可以忽略,这只是从理解的角度来看。

简而言之,我需要在table2中插入记录,值customerid可能存在也可能不存在,我需要处理这种情况。

4

2 回答 2

0

在 MySQL 中使用单个语句似乎是不可能的。但是,以下应该有效:

INSERT IGNORE INTO Table1 (CustomerName) VALUES ('abc');
INSERT INTO Table2 (OrderId,OrderNo,CustomerId) 
    VALUES (1,2456,(SELECT CustomerId FROM Table1 WHERE CustomerName='abc'));
于 2013-10-18T06:32:05.697 回答
0
/* first execute first query, */
$q1=mysql_query($sql1);  /* for first table */
$foreign_id=mysql_insert_id(); /* fetch last id from first table*/
$q2=mysql_query($sql2)  /* insert into second table use $foreign_id as foreign key */
于 2013-10-18T06:11:14.470 回答