gpt4 book ai didi

mysql - 如何在 MySQL 的子查询中按 MAX(date) 进行排序?

转载 作者:可可西里 更新时间:2023-11-01 08:18:39 24 4
gpt4 key购买 nike

我遇到了这个查询的问题:

我有两个表:样本和歌曲我要选择

pathName   from samples
id_user from samples
id from songs
name from songs

每个样本属于一首歌曲:我想将共享相同歌曲 ID 的每个样本分组,以便选择最后一个日期。所以我像这样在两个表之间进行连接:

$query = 'SELECT 
samples.pathName path_name,
samples.id_user id_user,
songs.id id_song,
songs.name song_name
FROM (SELECT *, MAX(date) AS maxDate FROM samples GROUP BY id_song ORDER BY maxDate) samples
INNER JOIN songs songs
ON songs.id = samples.id_chanson
WHERE songs.finished = false';

它不应该这么重,我希望我清楚...... :)

最佳答案

尝试:

SELECT sa.pathName,
sa.id_user,
so.id id_song,
so.name song_name
FROM songs so
JOIN (SELECT id_song, MAX(`date`) AS maxDate FROM samples GROUP BY id_song) mx
ON so.id = mx.id_song
JOIN samples sa
on mx.id_song = sa.id_song and mx.maxDate = sa.`date`
WHERE so.finished = 'false'
ORDER BY mx.maxDate

关于mysql - 如何在 MySQL 的子查询中按 MAX(date) 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16997734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com