我正在尝试从三个表中获取数据。
表名称
- table 水疗中心
- 表格spa_meta
- 表库存(库存仅返回一列unit_no 使用简单的连接这不是问题)
表的数据结构如下
表Spa_meta
- 我想列出基本信息应来自的数据 第一个表 Spa (id,title, inventory_id)
- 但从另一个 表spa_meta仅应选择与spa_id匹配的一个条目 应该根据created_at列(时间)进行DESC
问题:如何使用最少的 SQL 查询来实现此目的。正如我正在尝试的那样,这显然是错误的
select *, inventory_id, max(created_at) as MaxDate, inventory.unit_no as unit
from spa_meta t
inner join (
select spa.id as id, spa.title, spa.inventory_id as inventory_id,
from spa
group by spa.id
) tm on t.spa_id = tm.id
left join inventory on tm.inventory_id = inventory.id
group by unit
order by MaxDate DESC
最佳答案
SELECT spa_1.id as id, spa_1.title, spa_1.inventory_id, inventory.unit_no as unit,
spa_meta.*
FROM spa_meta
JOIN (
SELECT spa.*, (SELECT MAX(created_at) FROM spa_meta WHERE spa_meta.spa_id =
spa.id) as max_date FROM spa
) AS spa_1 ON spa_1.max_date = spa_meta.created_at AND spa_1.id = spa_meta.spa_id
LEFT JOIN inventory ON spa_1.inventory_id = inventory.id
关于php - Codeigniter - 使用 MySql 按 MaxDate/time 从具有多个重复项的元表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55780598/