Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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_Lookup Tables - Fatal编程技术网

无法在mysql中的查找表中添加数据

无法在mysql中的查找表中添加数据,mysql,lookup-tables,Mysql,Lookup Tables,嘿,我想向查找表添加数据,但出现了一些问题 我有两张桌子: 第一个表books[id\u book(PK)、标题、作者、流派、出版物年、publ\u city]共包含5个条目。 第二个表genres[id\u genera(PK),genera]共包含4个条目 查找表books\u-genres[id\u-books\u-genres(PK)、id\u-books(Fk)、id\u-genres(Fk)] 我试图从上面两个表中导出数据,并将它们添加到查找表中。我使用了这个查询 INSER

嘿,我想向查找表添加数据,但出现了一些问题

我有两张桌子: 第一个表
books
[id\u book(PK)、标题、作者、流派、出版物年、publ\u city]
共包含5个条目。 第二个表
genres
[id\u genera(PK),genera]
共包含4个条目

查找表
books\u-genres
[id\u-books\u-genres(PK)、id\u-books(Fk)、id\u-genres(Fk)]

我试图从上面两个表中导出数据,并将它们添加到查找表中。我使用了这个查询

    INSERT INTO books_genres (id_book, id_genre)
    SELECT id_book, id_genre FROM books JOIN genres
    on books.id_book = genres.id_genre;
我希望看到5个条目(每本书一个),3个不同的类型,2个相同的类型,因为两本书共享相同的类型

但是,我只取回4个条目(而不是5个条目)。结果也不正确,因为关系不正确。现在在查找表中,一本小说被标记为宗教


匹配是如何进行的?
id\u书
1将如何与
id\u类型
2(而不是与
id\u类型
3)连接?我的意思是,一本书的风格是如何形成的?我必须从另一个表中获取此信息吗?

您可以根据他们的ID加入该表。类型表有4行ID 1、2、3和4。并且表簿有5行,因此ID为1、2、3、4和5。join by id为完成以下操作的每本书返回一个新的联接表:books.id_book=genres.id_genre;但是id=5的书没有对,因此没有创建连接行

是的,这是真的。我有4种不同的id_类型,与5本id_书相关。所以两本id书共享相同的id类型。但这两本书有不同的标题和作者,所以我把它们算作不同的条目。我对这方面真的很陌生。我无法理解这种联系是如何建立的。我提出了这个查询,以及一本必须连接到一个非常特定的id_类型的非常特定的id_书籍如何可能在查找表中正确连接。执行该操作的字段/命令有哪些?在我的情况下,我肯定我错过了一些东西,有一个与书籍和流派混淆。它们只有5个条目,所以我可以看到我看到的。另一件我不明白的事呢。我想我错过了行动背后的逻辑。。我怎样才能确保上面的查询将正确的id_书与正确的id_类型链接起来?我应该再接通一个我还没接通的线路吗?“book”表和“genre”表是独立的表及其条目,那么如何建立适当的链接呢?(我希望这是有意义的)这就是查找表的位置。。。例如,如果要将两本不同的书附加到同一类型,只需在查找表中添加两行即可。例如,要将书11,12链接到类型2,只需添加第1行:11,2,第2行:12,2如果我做对了,我会选择我想要连接的数据,然后发出命令。谢谢,我会试试你的建议