我正在尝试为这个问题编写查询:
编写查询以仅选择所有作者都属于印度国籍的书籍。
其中
我正在尝试使用内部联接组合两个查询,但它给出了一个错误..
我的查询是..
SELECT COUNT(*)
FROM (books_authors
WHERE books_authors.author_id IN
(
SELECT author_id
FROM obl_authors WHERE nationality='Indian'
) GROUP BY books_authors.book_id) A
INNER JOIN
(
SELECT COUNT(*)
FROM books_authors
GROUP BY books_authors.book_id
) B
ON A=B
它给出了这个错误:
Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where books_authors.author_id in (select author_id from obl_authors where nation' at line 1
我有 3 个表 obl_books、obl_authors 和 books_authors(链接表)..我在这里要做的是在第一个查询中,我正在从每个 book_id 的 obl_author 表中检索 author_id 的行数,其中国籍是印度人
在第二个查询中,我正在检索特定 book_id 的所有作者的行数。
我想结合这两个查询来检查 book_id 的 author_id 的行数是否等于它的总行数(我从第二个查询中检索)..如果然后检索该 book_id。
在 ON 子句中,我做了 A=B 来检查它的相等性,但是如果匹配(即 A=B),我将如何告诉它甚至检索那些 book_ids