2013-05-02 62 views
1

我想查找表格中存在的最大数量id。例如,我有一个user_views表:如何在一个表中获得最大的id号?

 user_views 
------------------- 
u_v_id package_id 
    1   24 
    2   24 
    3   24 
    4   25 
    5   25 
    6   26 
    7   27 

而一个包表:

package_id  name 

id S的存在于一个表中的最大数目是24等。

如何编写查询来提取该值?

+0

所需出来放会24 – user2046638 2013-05-02 13:31:34

+0

你真的需要澄清一点。 – SomeShinyObject 2013-05-02 13:47:17

+0

我想要在package_id存在或存在于user_views表中的软件包表中包名。 – user2046638 2013-05-02 13:49:30

回答

0

如果你想找到一个数据库的最大数,使用MAX()

SELECT 
    MAX(`column`) as `max` 
FROM 
    `table` 

,或者如果你想找到一个数据库的唯一ID的数量,使用COUNT()

SELECT 
    COUNT(DISTINCT `column`) as `count` 
FROM 
    `table` 
3
select package_id, count(*) as Count 
from MyTable 
group by package_id 
order by count(*) desc 
limit 1 
+0

连接不是与此查询选择的package_id工作,从USER_VIEWS COUNT(*)作为计数 通过计数INNER JOIN包上packages.package_id = user_views.package_id 组通过的package_id 顺序(*)递减 – user2046638 2013-05-02 13:43:37

+0

我想你的查询,因为它与@JW相比简单,但问题是它不处理重复的权利?看到这里http://sqlfiddle.com/#!2/edae1/4 – Pedigree 2013-05-02 13:59:07

1

下面的查询将支持重复package_ID具有最大数量的意见。

SELECT package_ID 
FROM user_views 
GROUP BY package_ID 
HAVING COUNT(*) = 
(
    SELECT COUNT(*) totalCount 
    FROM user_views 
    GROUP BY package_ID 
    ORDER BY totalCount DESC 
    LIMIT 1 
) 
+0

JW和@ RedFilter如果我想加入包表,那么我做什么? – user2046638 2013-05-02 13:36:44

+0

在外部语句中加入它并将COUNT(*)'改为COUNT(distinct u_v_id)'。 – 2013-05-02 13:37:54

+0

你能给我你想加入的表格样本和他们的关系吗? – 2013-05-02 13:47:48

0

如果您想获得package_id值,然后使用CodeIgniter的内置的Active Record类:

$this->db->select('user_views.u_v_id', 'packages.package_id', 'packages.name'); 
$this->db->from('user_views'); 
$this->db->join('packages', 'user_views.package_id=packages.package_id'); 
$query = $this->db->get(); 
相关问题