以下是两个表格:
表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
的值可能存在或者可能不存在,我需要处理这种情况。
答案 0 :(得分: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 */
答案 1 :(得分: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'));