我有需要最新情况的案子。有两个表,我简化了我的表,如下所示:
Table A
+------------+
| a_id |
|------------|
| A1 |
| A2 |
+------------+
Table B
+------------+-------------+------------------+------------------+
| b_id | a_id | status | created_at |
|------------+-------------+------------------+------------------|
| B01 | A1 | something | 2020-03-14 |
| B02 | A1 | something else | 2020-04-15 |
| B03 | A2 | anything | 2020-03-22 |
+------------+-------------+------------------+------------------+
我想用连接表b显示a中的表,所以它将显示如下:
+------------+--------------------+-----------------+
| a.a_id | b.status | b.created_at |
|------------+--------------------+-----------------|
| A1 | something else | 2020-04-15 |
| A2 | anything | 2020-03-22 |
+------------+--------------------+-----------------+
我会感激mysql查询或codeigniter查询生成器。谢谢您
2条答案
按热度按时间hsgswve41#
如果您运行的是mysql 8.0,那么可以使用
row_number()
:在早期版本中,一个选项是使用相关子查询进行筛选:
为了提高相关子查询解决方案的性能,请考虑
tableb(a_id, created_at)
.unguejic2#
首先从b表中找到最新创建的\u at值
例子:
SELECT MAX(created_at) FROM B GROUP BY a_id;
然后在下面的查询中使用第一个结果,就可以得到所需的输出。