mysql - 为什么我的 SQL Join 在结果中重复行

标签 mysql sql

我通常处理“SQl Server 2008”,但这个数据库是 php myadmin,我想知道这可能是问题所在。

我有两个非常基本的表。一个叫做 BOOK,一个叫做 CATEGORY。 BOOK 有 Book_id, title, author,medium CATEGORY 只有 book_id 和类别。

书籍可以有多个与之关联的类别。

所以当我像这样进行简单的连接时:

SELECT a.title,a.author,b.category 
FROM BOOK a
LEFT JOIN CATEGORY b
ON a.book_id = b.book_id

我得到重复的记录。因此,对于每本书都有一个类别,我期望返回 1 行,我得到 2。我期望 2 行的地方我得到 3,我期望 3 的地方我得到 4。

任何关于为什么会发生这种情况的帮助都会很棒。

谢谢

最佳答案

这些表的结构似乎有问题。在正常情况下,我会想象 BOOK 会有一个 category_id,因为一本书只能有一个类别,而一个类别可以有很多本书。在 CATEGORY 表中包含 book_id 意味着一个类别只能包含一本书,而一本书可以有多个类别。

我不会责怪导致您出现意外情况的不是数据库的类型,而是表的结构。

关于mysql - 为什么我的 SQL Join 在结果中重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33424940/

相关文章:

mysql - 如何在 mysql 查询中使用不存在或不存在的内部连接?

java - 在 java db 中创建触发器

php - Joomla 中的自定义 PHP 输入和结果

mysql - 计数在 group_concat Mysql 中不起作用

mysql - 带有辅助列的 SQL 语句联合

sql - SQL中的索引是什么?

mySQL在一个查询中从多个表中获取信息

mysql - SQL 查询从表中删除多个重复条目

SQL - 删除重复项以显示最新日期记录

SQL:如果不存在如何更新或插入?