Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 插入具有未知外键但已知其他列信息的行的最简单方法_Mysql_Insert - Fatal编程技术网

Mysql 插入具有未知外键但已知其他列信息的行的最简单方法

Mysql 插入具有未知外键但已知其他列信息的行的最简单方法,mysql,insert,Mysql,Insert,为了澄清这个问题,我有一张表,我们称之为“tAuthor”,另一张表称为“tBook”。这些表有以下列 tautor id-INT(PK) fname-VARCHAR(50) lname-VARCHAR(50) tBook id-INT(PK) authorid-INT(主键) 名称-VARCHAR(50) 如果我有作者的名字和姓氏,并且想为他们在tBook中插入一本新书,那么有没有一种简单的方法可以让insert语句自动填入authorid,其中fname=“Known”和lname=

为了澄清这个问题,我有一张表,我们称之为“tAuthor”,另一张表称为“tBook”。这些表有以下列

tautor

  • id-INT(PK)
  • fname-VARCHAR(50)
  • lname-VARCHAR(50)
tBook

  • id-INT(PK)
  • authorid-INT(主键)
  • 名称-VARCHAR(50)
如果我有作者的名字和姓氏,并且想为他们在tBook中插入一本新书,那么有没有一种简单的方法可以让insert语句自动填入authorid,其中fname=“Known”和lname=“Known”

我想我总是可以有两条语句,一条select语句返回id,其中fname=“Known”和lname=“Known”,然后使用返回的id运行insert语句。我只是好奇有没有别的办法

INSERT INTO tBook (name, authorid)
VALUES(SELECT 'NewBook', id
       FROM tAuthor
       WHERE tAuthor.fname = 'FirstName'
       and tAuthor.lname = 'LastName')

我不建议使用作者的名字,因为可能会有重复的。但是,此语句将执行您所需的插入。基本上,您可以从需要ID的表中进行子选择,并将其余信息填写为硬编码值,而不是要检索的值。如果您需要更新一组更大的记录,并且所有记录都共享一个公共元素,那么这也是一种进行多次更新的好方法。

但是,对于未知的“书名”列呢?这是一个与PHP相关的问题吗?您可以使用Java。@Spidy:那么您必须定义语言(如果有的话)。主要猜测是PHP@Shakti辛格:这是一个mysql问题,就是这样。语言不需要定义