Mysql N对N关系选择

Mysql N对N关系选择,mysql,database,Mysql,Database,我是mysql新手,在选择具有n-to-n关系的实体时遇到了一些问题。 我有以下表格: books(isbn, name, ...) authors(author_id, fullname) writtens(author_id, isbn) // primary key (author_id, isbn) 有没有办法找到两位作者至少一起写了两本书的所有作者对? 例如: BOOKS: isbn name 'isbn1' 'book1' 'isbn2' 'book2' 'isbn3'

我是mysql新手,在选择具有n-to-n关系的实体时遇到了一些问题。 我有以下表格:

books(isbn, name, ...)
authors(author_id, fullname)
writtens(author_id, isbn) // primary key (author_id, isbn)
有没有办法找到两位作者至少一起写了两本书的所有作者对?

例如:

BOOKS:
 isbn     name
'isbn1' 'book1'
'isbn2' 'book2'
'isbn3' 'book3'

AUTHORS:
author_id fullname
1         'author1'
2         'author2'
3         'author3'

WRITTENS:
author_id isbn
1         'isbn1'
1         'isbn2'
1         'isbn3'
2         'isbn1'
2         'isbn2'
3         'isbn2'
结果可能如下所示:

author_id author_id
1           2
因为我是mysql新手,所以我期望的结果格式可能不正确,您可以更改结果格式。 谢谢大家!

查找两位作者至少一起写了两本书的所有作者对

选择t1.author\u id,t2.author\u id
从写入t1
使用(isbn)连接写入t2
其中t1.author\u id1
如果
writens
中的
(作者id,isbn)
定义为唯一,则不需要使用DISTINCT


如果您需要作者姓名,请另外加入两份
作者
表。

只需要为
t1.author\u id为writed\u by,t2.author\u id为writed\u与
@SlavaRozhnev一起使用,我认为这是不正确的。没有任何信息表明某位作者是主要作者,所以我们必须假设他们是同行。亚伦总是被“写”出来,而扎卡里却没有机会,这是不好的。。。