0

我目前有两个对我的数据库执行查询的函数;第一个对我的所有条目执行查询,第二个有一个规范(用于版本控制)。

数据库 ->已编辑

id | version_id | post_id
-------------------------
1  |    1       |   1
2  |    2       |   2
3  |    1       |   1
4  |    1       |   1

代码 ->已编辑

public function post($postid)
{
    global $db;
    $query = "SELECT * FROM news";
    return $db->select($query);
}
public function version_count()
{
    global $db;
    $query = "SELECT * FROM news WHERE post_id='1' ORDER BY version_id DESC LIMIT 1";
    return $db->select($query);
}

为了显示我的条目,我尝试了以下操作,它按预期提供了所有条目:

$posts_array = $query->post($post);
foreach ( $counted_versions as $post )
{
    echo $post->id . "-";
}

但是,我只想回显第 2 行和第 4 行,因为 2 是唯一的,而 4 是最新的。

起初,我认为这个逻辑会起作用:

$posts_array = $query->post($post);
$counted_versions  = $query->version_count();

foreach ( $counted_versions as $counted )
{
    foreach ( $posts_array as $post )
    {
        echo $post->id . "-";
    }
}

相反,我得到1-2-3-4-了,如果我切换我的 foreach 循环,我得到4-4-4-4-,而我期望2-4或至少1-4(或4-24-1)。

有人有办法得到类似的结果吗?

4

1 回答 1

0

如果您想要id每个 的最高值post_id,请使用以下查询:

SELECT post_id, MAX(id) max_id
FROM news
GROUP BY post_id
于 2013-09-14T19:26:22.730 回答