gpt4 book ai didi

图书馆数据库的 MySQL 查询

转载 作者:行者123 更新时间:2023-11-30 23:04:52 24 4
gpt4 key购买 nike

我有一个数据库项目,我正在努力处理三个查询。你能帮忙吗?

我有以下表格:

member(memberNo, name, age)
book(isbn, title, author, publisher, year, category)
borrowed(memberNo, isbn, date)

我必须通过制定单个 SQL 查询(即不使用 View )来回答以下每个问题:

1) 对于每个类别,找到在该类别中借阅超过五本书的成员的姓名。

2) 找出图书馆中最多产的作者,即创作最多书的作者。

3) 查找多次借阅同一本书的成员的姓名。

非常感谢

到目前为止,我已经尝试了以下方法:

1) 我的查询:

SELECT member.name 
FROM member
WHERE member.memberNo IN(SELECT borrowed.memberNo
FROM borrowed
GROUP
BY memberNo
HAVING COUNT(memberNo)>5)

结果:这似乎返回了正确的结果,但我还没有想出如何根据问题添加“类别”。

2) 我的查询:

SELECT author 
, COUNT(*) AS 'Books Written'
FROM book
GROUP
BY author
HAVING COUNT(isbn)>6

结果:这将返回正确的结果,但这只是因为我指定了超过 6 本书——那是因为我知道我有一位作者写了 7 本书,因此我指定了“超过 6 本书”——但我不确定如何编写一个查询来自行确定“写的最多的书”

3) 我的查询:

SELECT member.name 
FROM member
WHERE member.memberNo IN (SELECT borrowed.memberNo
FROM borrowed
WHERE borrowed.isbn IN(
SELECT COUNT(borrowed.isbn) as 'con'
FROM borrowed
WHERE 'con' >1))

结果:查询返回一些带有成员名称的行,但它们是不正确的——一些成员只是借了不止一本书(但不是同一本书不止一次)但其他成员没有借任何书超过一次——所以查询不正确。

最佳答案

这是 1....的线索

SELECT b.something
, c.something_else
FROM a
JOIN b
ON b.x = a.x
JOIN c
ON c.y = a.y
GROUP
BY b.m
, c.n
HAVING COUNT(*) >= 5;

关于图书馆数据库的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22308821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com