[英]Select max value within other select statement and display also a relevant field from the nested select
我有一个问题要在mySql上表达下一条语句以返回真实结果:
select max(alltaken)mn, b.title from
(select count(bc.taken) as alltaken, b.title
from books_clients bc
join books b on b.book_id = bc.book_id
group by b.title) as mn
join books b on b.title = mn.title
我需要从第一个选择返回的书名按标题归类,然后在外部选择中返回以选择最大数量,还要显示相应的书名。 这样写的语句将返回最大数目和按b.title分组的标题,不相关的值...
语句的以下部分仅返回最大数,但我也无法将其转换为也返回标题:(:
select max(alltaken)mn
(select count(bc.taken) as alltaken, b.title
from books_clients bc
join books b on b.book_id = bc.book_id
group by b.title) as mn
您能否帮助我为我创建真正的查询。
您可以在主要选择的“ mn.title”中访问“ b.title”。
我不知道您的数据库结构,因此可以检查您的SQL语句的有效性。 如果先前的建议不起作用,则可以发布数据库结构,以便我检查它并提供确切的SQL语句。
您甚至不需要子查询:
SELECT COUNT(bc.taken) AS mn
, b.title
FROM books_clients AS bc
JOIN books b
ON b.book_id = bc.book_id
GROUP BY b.title
ORDER BY mn DESC
LIMIT 1
如果有多个具有相同最大计数的结果,则需要一个子查询:
SELECT allb.mn
, allb.title
FROM
( SELECT COUNT(bc.taken) AS mn
FROM books_clients AS bc
JOIN books b
ON b.book_id = bc.book_id
GROUP BY b.title
ORDER BY mn DESC
LIMIT 1
) AS maxb
JOIN
( SELECT COUNT(bc.taken) AS mn
, b.title
FROM books_clients AS bc
JOIN books b
ON b.book_id = bc.book_id
GROUP BY b.title
) AS allb
ON allb.mn = maxb.man
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.