按行排序

问题描述

| 好的,所以我有一个要构建的查询我有2个表,table1具有一堆常规记录,这些记录具有正常的唯一ID(自动递增),而table2的记录包含了来自table1的某些ID。我正在尝试按表1中具有相同ID的最高记录进行排序。这就是我所拥有的:
SELECT * FROM table1 
WHERE table1.status = 1 
AND (SELECT COUNT(*) FROM table2 WHERE table2.tbl1_id = table1.id) 
ORDER BY table1.id DESC
谢谢 :)     

解决方法

SELECT table1.id 
FROM table1 
LEFT JOIN table2 ON table2.tbl1_id = table1.id
WHERE table1.status = 1 
GROUP BY table1.id
ORDER BY COUNT(table2.tbl1_id) DESC
    ,尝试这个:
SELECT a.*,b.cnt
  FROM table1 a LEFT JOIN
    (
        SELECT tbl1_id,COUNT(*) cnt
            FROM table2
        GROUP BY tbl1_id
    ) b
 ON a.id = b.tbl1_id  
WHERE table1.status = 1 
ORDER BY cnt DESC
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...