[英]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.