我必须做错事,因为我已经尝试了搜索中出现的所有建议。
我正在尝试加入表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;
答案 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