1

sqlite3 の group_concat 内で注文しようとしています。これはmysqlのようにサポートされていないため、これを行うことはできません:

group_concat(logID order by logDateTime DESC)

私の完全なクエリはこちらです。logID を logDateTime で並べ替える必要があります。ここでサブクエリ メソッドについて読みました: Sqlite group_concat の順序付けですが、クエリで動作させることができませんでした。

SELECT logID,
       NULL AS sessionID,
       logDateTime,
       NULL AS sessionName,
       NULL AS NamesInRandomOrder
FROM logs
WHERE sessionID IS NULL

UNION ALL

SELECT NULL,
       sessions.sessionID,
       MAX(logDateTime),
       sessions.sessionName,
       group_concat(logID)
FROM logs
JOIN sessions ON logs.sessionID = sessions.sessionID
GROUP BY sessions.sessionID

ORDER BY 3 DESC
4

1 に答える 1

1

これはサブクエリを順序付けますが、SQLite はすべての場合で順序が維持されることを保証しません。

SELECT logID,
       NULL AS sessionID,
       logDateTime,
       logName,
       NULL AS NamesInRandomOrder
FROM logs
WHERE sessionID IS NULL

UNION ALL

SELECT NULL,
       sessionID,
       MAX(logDateTime),
       sessionName,
       group_concat(logName)
FROM (SELECT sessions.sessionID AS sessionID,
             logDateTime,
             sessionName,
             logName
      FROM logs JOIN sessions ON logs.sessionID = sessions.sessionID
      ORDER BY sessions.sessionID,
               logName)
GROUP BY sessionID

ORDER BY 3 DESC
于 2013-02-20T10:21:49.037 に答える