我通常处理“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/