Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql新手,无法理解_Mysql_Select_Join - Fatal编程技术网

mysql新手,无法理解

mysql新手,无法理解,mysql,select,join,Mysql,Select,Join,我需要找出如何做到这一点 对于整个图书馆系统(而不仅仅是一个分支机构)中的每一本超过17份或少于5份的书,显示标题和总份数作为总份数 书号、书名 图书副本图书id、分行id、无副本 图书馆、分馆、分馆id、分馆名称、地址 我无法理解如何做到这一点,我是否需要使用子查询或普通单行查询 请帮我理解 SELECT BOOK.book_id, BOOK.title, SUM(no_of_copies) FROM BOOK_COPIES INNER JOIN BOOK ON BOOK_COPIES.b

我需要找出如何做到这一点

对于整个图书馆系统(而不仅仅是一个分支机构)中的每一本超过17份或少于5份的书,显示标题和总份数作为总份数

书号、书名 图书副本图书id、分行id、无副本 图书馆、分馆、分馆id、分馆名称、地址

我无法理解如何做到这一点,我是否需要使用子查询或普通单行查询

请帮我理解

SELECT BOOK.book_id, BOOK.title, SUM(no_of_copies) 
FROM BOOK_COPIES 
INNER JOIN BOOK ON BOOK_COPIES.book_id=BOOK.book_id 
GROUP BY BOOK_COPIES.book_id 
HAVING SUM(no_of_copies)<5 OR SUM(no_of_copies)>17
这就是它的作用

它首先检查您的BOOK_COPIES表,并根据所有图书的图书id汇总所有图书的拷贝数,然后从BOOK table附加标题,最后检查拷贝数是否小于5或大于17,然后返回所有此类结果


请阅读这里的相关内容,它们非常有趣,也很有帮助。

SQL连接应该可以在这里工作。

使用您熟悉的任何语言,并将图书ID列表推送到第二个查询中

SELECT
 `book_id`,
 `title`
FROM `BOOK`
WHERE `book_id` IN (/* List of book ids from first query */)
例如:

WHERE `book_id` IN (123, 345, 678, 901)

使用连接,阅读有关连接使用以下链接[链接]感谢4链接,它很有帮助!很好,只需选择BOOK.BOOK\u id,但你能给我解释一下吗。。。?真是帮了大忙…谢谢你,伙计!非常感谢!
SELECT
 `book_id`,
 `title`
FROM `BOOK`
WHERE `book_id` IN (/* List of book ids from first query */)
WHERE `book_id` IN (123, 345, 678, 901)