假设一张user表 id name 两列,都是唯一,一张order表也有这两列,插入数据到order表的时候已经有了 name,那id能不能关联到user表中的值来插入?如果可以应该怎么写呢?还是说只能先在user表通过name查询到id值再插入到order?

解决方案 »

  1.   

    刚刚试了一下应该是这样写的吧,已经成功了
     INSERT INTO `order`(`id`,`name`,`time`,`total`) VALUES ((SELECT `id` FROM `user` WHERE name='test'),'test','2013-01-01 00:00:00','888')
      

  2.   

    INSERT INTO `order`(`id`,`name`,`time`,`total`) SELECT `id`,'test','2013-01-01 00:00:00','888' FROM `user` WHERE name='test'
      

  3.   


    正解。本质上就是你所说的“先在user表通过name查询到id值再插入到order”