【问题标题】:Mysql Join Multiple Table Excluding Some RecordsMysql加入多个表排除一些记录
【发布时间】: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 书籍的作者以及其他作者也写过一些其他主题的书籍,所以我想排除他们。

【问题讨论】:

    标签: mysql join multiple-tables records


    【解决方案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'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      相关资源
      最近更新 更多