0

我在 mysql 查询中遇到问题,我有 2 个表。

  1. category_info

    cid cname
    1   Latest News
    2   Notice Board
    3   Headline
    
  2. news_info

    pid cid title               date
    1   1   mobile              2013-03-04
    2   1   fish                2013-03-04
    3   2   Airtel india        2013-03-04
    4   2   Marco Simoncelli    2013-03-05
    5   3   title1              2013-03-22
    6   1   title               2013-03-22
    7   3   International Opportunity   2013-03-22
    

我想从news_info具有最大值的表不同值中访问标题pid

我正在使用以下查询

SELECT a.*, b.*  FROM category_info AS a RIGHT JOIN news_info AS b ON (a.cid = b.cid)  GROUP BY a.cid

它给了我独特的价值,但不是最大的 ID。它给出最小 id 值。

4

3 回答 3

1

这将为您提供您提出的问题的答案。我不确定这是否是您真正想要的。

select distinct title
from news_info
where pid = 
(select max(pid) from news_info)
于 2013-03-23T14:16:03.237 回答
0

这是另一种方法:

select ni.*
from news_info ni
order by pid desc
limit 1

在您的示例中,没有重复的 pid,因此只有一个具有最大值。

于 2013-03-23T14:32:07.617 回答
0

这是另一种方法:

SELECT *
FROM news_info n
LEFT JOIN category_info c ON a.cid = b.cid
--
-- the maximum pid := there should not exist a higher pid value (for the same cid)
--
WHERE NOT EXISTS (
   SELECT * FROM news_info x
   WHERE x.cid = n.cid
   AND x.pid > n.pid
    );
于 2013-03-23T14:33:39.347 回答