簡體   English   中英

如何選擇具有max(選擇字段)和另一(特定字段)的一行?

[英]How to select one row with max(select field) and another (specific field)?

如何選擇具有max(選擇字段)和另一(特定字段)的一行?

下面是我的代碼
1.首先了解max(選擇字段)
2.然后選擇該行內的所有字段。 但是第2步沒有返回任何東西,想知道為什么嗎?
並且有較短的語法用於相同的結果嗎?
謝謝。

$gid = 1;

// get lid
$sth = $db->prepare("SELECT MAX(lid) as lid FROM t WHERE gid = :gid");
$sth->bindParam(':gid', $gid);
$sth->execute();
$arr = $sth->fetch(PDO::FETCH_ASSOC);
print $arr['lid'];

// nothing return??
$lid = $arr['lid'];
$sth = $db->prepare("SELECT * FROM t WHERE gid = :gid AND lid = :lid");
$sth->bindParam(':gid', $gid);
$sth->bindParam(':lid', $lid);
$row = $sth->fetch();
print_r($row);

您可以使用此查詢一步完成此操作:

$sql = "SELECT t.* 
        FROM t 
        INNER JOIN (
            SELECT MAX(lid) as lid 
            FROM t 
            WHERE gid = :gid
        ) AS x ON t.lid = x.lid";
$sth = $db->prepare($sql);
$sth->bindParam(':gid', $gid);
$sth->execute();
$arr = $sth->fetch(PDO::FETCH_ASSOC);
print_r($arr);

暫無
暫無

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

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