簡體   English   中英

MySql:如何將行號與聯接查詢語句一起使用?

[英]MySql : How to use rownumber with a join Query statement?

我有一個MySQL語句,該語句連接了2個表,並以“觸摸”字段的Desc順序顯示結果。 這是我的SQL語句

SELECT @rownum := @rownum +1 rownum, 
(IF( dm.Brand_FULL = '1', dd.Device_Brand, dm.Brand_Full )) AS Brand,
dd.Device_Model AS Model, 
CONCAT( dm.Service_provider, ' ', dm.Model_Full ) AS 'Marketing Name', 
max( Touch_Count ) AS Touch FROM Device_Details dd 
JOIN Device_Models dm ON dd.Device_Model = dm.Model_Short, 
(SELECT @rownum :=0 )r GROUP BY dd.Device_Model ORDER BY Touch_Count DESC

這給我這樣的結果

在此處輸入圖片說明

結果是perferct,其結果基於Touch字段的降序。現在的問題是rownum的順序不正確。 那么如何修改mySQL語句,以便我可以按順序獲取rownum而不更改Touch字段的DESC順序。

使用子查詢:

SELECT
    @rownum := @rownum + 1 AS rownum,
    T1.*
FROM
(
    SELECT
        IF(dm.Brand_Full = '1', dd.Device_Brand, dm.Brand_Full) AS Brand,
        dd.Device_Model AS Model, 
        CONCAT(dm.Service_provider, ' ', dm.Model_Full) AS 'Marketing Name', 
        MAX(Touch_Count) AS Touch
    FROM Device_Details dd 
    JOIN Device_Models dm
    ON dd.Device_Model = dm.Model_Short
    GROUP BY dd.Device_Model
) AS T1, (SELECT @rownum := 0) AS r
ORDER BY Touch DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM