Mysql加入多个表排除一些记录
Posted
技术标签:
【中文标题】Mysql加入多个表排除一些记录【英文标题】:Mysql Join Multiple Table Excluding Some Records 【发布时间】:2013-01-22 04:49:01 【问题描述】:我在 mysql 方面不是很好,所以需要一些帮助。我有三张表作者(author_id,name),book(book_id,name),publisher(id,author_id,book_id)
我只想获取那些仅在 rdbms 上撰写/出版书籍的作者。
我试过了:
SELECT a.author_id, a.name, b.name as bookname
FROM author a
LEFT JOIN publisher p ON p.author_id = a.author_id
INNER JOIN book b ON b.book_id = p.book_id ANd b.name='rdbms'
这给了我所有写过关于 rdbms 书籍的作者以及其他作者也写过一些其他主题的书籍,所以我想排除他们。
【问题讨论】:
【参考方案1】:试试这个
SELECT a.author_id, a.name, b.name as bookname
FROM author a
LEFT JOIN publisher p ON p.author_id = a.author_id
INNER JOIN book b ON b.book_id = p.book_id
group by a.author_id
HAVING count(p.book_id) = 1 AND bookname='rdbms'
【讨论】:
以上是关于Mysql加入多个表排除一些记录的主要内容,如果未能解决你的问题,请参考以下文章
跨两个数据库导入/导出表的某些列并排除 mysql 中的重复电子邮件