[英]SQL Select statement in PHP missing entires from table 1 and 2 because table 3 lacks the product_id
[英]SQL Select Unique Entires
我在桌上:
ID Name Age
1 James 15
2 James 16
3 Joseph 16
4 Joseph 18
5 Steve 4
我想返回:
5 Steve 4
1 James 15
3 Joseph 16
即。 根据“名称”行的唯一条目(当存在多个相同名称时,选择ID最低的条目),并按年龄排序
什么是正确的SQL语句?
我有:
Select * FROM table Where True GROUP BY Name ORDER BY Age
它似乎返回了很多独特的结果,但是它太慢了(表有> 250,000个条目,并且要花费> 30秒的时间来处理),我想知道是否有更快的方法来做到这一点?
尝试这个
选择 *
FROM table WHERE ID(按名称选择SELECT MIN(ID)FROM table组)
按年龄排序
您只需按名称对数据集进行分组并获得MIN(ID)
并将其用作选择的“ where”条件
由于要基于最小ID
进行选择,这是一个唯一字段,因此您只需要首先获取每个名称的最小ID
,然后将这些ID
连接到主表即可。 这将比在WHERE
使用子查询快得多,因为最小值的子选择仅执行一次,而子查询将对主表中的每一行执行(250,000次以上!)。
SELECT
b.*
FROM
(
SELECT MIN(ID) AS minID
FROM tbl
GROUP BY Name
) a
INNER JOIN
tbl b ON a.minID = b.ID
ORDER BY
b.Age
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.