簡體   English   中英

MySQL:從A列獲取對應於B列MIN的值

[英]MySQL: Getting value from column A that corresponds to MIN from column B

我有下表:

 step_id    hospital_id     step_number     step_name
    17                  8            4          First Step
    18                  8            1          Second Step
    19                  8            2          Third Step
    20                  8            3          Finance Approval

我想做的是獲取對應於最小步數的step_id。 因此,在上面的示例中,我正在尋找step_id 18。

在查看了許多帖子之后,我一直嘗試以下變化,但無濟於事:

SELECT `step_id`
    FROM `progress_steps`
    WHERE `hospital_id` = 8
    GROUP BY `step_id`
    HAVING MIN(`step_number`)

似乎對其他人有用,但是上面返回了示例中的所有行,而我嘗試給我的其他變體僅給了step_id 17。

您可以使用ORDER BYLIMIT

SELECT  *
FROM    tableName
WHERE   hospital_id = 8
ORDER   BY  step_number ASC
LIMIT   1

或者,如果要獲取具有相同最低step_number多行,請使用子查詢:

SELECT  *
FROM    tableName
WHERE   step_Number =
    (
        SELECT  step_Number
        FROM    tableName
        WHERE   hospital_id = 8
        ORDER   BY  step_number ASC
        LIMIT 1
    )

試試這個

SELECT `step_id`
FROM `progress_steps`
WHERE `hospital_id` = 8
Order BY `step_id` 
LIMIT 1

暫無
暫無

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

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