如何用max(选择字段)和另一个(特定字段)选择一行?

时间:2013-07-20 13:05:44

标签: php mysql pdo

如何用max(选择字段)和另一个(特定字段)选择一行?

以下是我的代码
1.首先了解最大值(选择字段) 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);

1 个答案:

答案 0 :(得分:0)

您可以使用此查询一步完成:

$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);