订单加入左边没有生效

时间:2015-09-04 05:04:28

标签: mysql sql left-join

我必须做错事,因为我已经尝试了搜索中出现的所有建议。

我正在尝试加入表1和表2,但是从表2中我想选择与表1中的id匹配的 1条目但我不希望它选择任何从表2中输入,它必须是最新的日期。

我有

$query->join('LEFT', '#table_2 AS o ON a.id = o.item_id');

我试过了

$query->join('LEFT', '#table_2 AS o ON a.id = o.item_id')->order('o.date', 'DESC');

重新排序返回的所有结果,并且对连接结果没有影响

我也试过

$query->join('LEFT', '#table_2 AS o ON a.id = o.item_id ORDER BY o.date DESC');

这没效果

所以我现在相当困难了几个小时。

编辑:

抱歉,这是

$ db = $ this-> getDbo();         $ query = $ db-> getQuery(true);

    $query->select(
                $this->getState(
                    'list.select',
                    'a.id AS id, a.title AS title, a.featured, a.date_created, a.users_id, a.published, '.
                                    'c.title as category_title,a.date_publish,a.date_publish_down, o.how'
                )
            );
    $query->from($db->quoteName('table_1').' AS a');
            $query->join('LEFT', 'table_2 AS o ON a.id = o.item_id')->order('o.id');
            $query->where('a.published = 1');
    $query->group($db->escape('a.id'));
    return $query;

1 个答案:

答案 0 :(得分:0)

以下查询会为您提供MySQL的结果。它可能/可能不适用于其他RDBMS。

在select语句中指定所需的字段列表。

select * from
(select a.id, field_list_you_want from table1 a
left join table2 o ON a.id = o.item_id

order by a.id,o.date desc) temp
group by id