人物表:t_person    字段:id,name,age
书籍表:t_book         字段:id, name
买卖表:t_buy         字段:id,bookId,personId查询:20--30岁之间的人买的最多的书(可能是多本);

解决方案 »

  1.   

    下面语句可以找到什么书卖得最多,按降序排列 select k.name,count(1)as b_count from t_buy b

    join t_book k on b.bookid=k.id 

    join t_person p on b.personid=p.id

    and p.age between 20 and 30 

    group by b.bookid order by b_count desc
      

  2.   

    select bookId , (select name from t_book where id=bookId)
    from (
    select bookId,count(*) as c
    from t_person p inner join t_buy b on p.id=b.personId
    where p.age between 20 and 30
    ) a
    where c=(select max(c) as macx
    from (
    select bookId,count(*) as c
    from t_person p inner join t_buy b on p.id=b.personId
    where p.age between 20 and 30
    )b
    )