0

ねえ、私は日付順にクエリを持っています、そして私は日付が安定した結果を維持するために追加された時間による順序と同じである場合に備えて欲しいです。

私は次のクエリを持っています:

    (
SELECT  'album' AS RowType, id, DATE, title, time_added
FROM albums
WHERE is_temp =0
AND subject_id =  '3'
)
UNION ALL (

SELECT  'video' AS RowType, id, DATE, title, time_added
FROM videos
WHERE is_temp =0
AND subject_id =  '3'
)
UNION ALL (

SELECT  'story' AS RowType, id, DATE, title, time_added
FROM stories
WHERE is_temp =0
AND subject_id =  '3'
)
ORDER BY DATE, time_added

これは完全に機能しますが、結果セットに列が必要ないため、列を選択したくありません。time_added

どういうわけかこれを達成できますか?time_addedを削除すると、クエリは実行されません。

私は以下を見つけました:

ORDER BY句を使用すると、出力行が並べ替えられます。
ORDER BYの引数は、ソートのキーとして使用される式のリストです。単純なSELECTの場合、式は結果の一部である必要はありませんが、複合SELECTでは、各ソート式が結果列の1つと完全に一致する必要があります。各ソート式の後には、オプションでCOLLATEキーワードと、ソート順を指定するためのテキストおよび/またはキーワードASCまたはDESCの順序付けに使用される照合関数の名前を続けることができます。

それが不可能なのか、もっと頑張らなければならないのか、私には判断できません。

4

1 に答える 1

0

これを試して

SELECT RowType
    , id
    , DATE
    , title
FROM 
(
    SELECT 'album' AS RowType , id , DATE , title , time_added
    FROM albums
    WHERE is_temp = 0 AND subject_id = '3'

    UNION ALL

    SELECT 'video' AS RowType , id , DATE , title , time_added
    FROM videos
    WHERE is_temp = 0 AND subject_id = '3'

    UNION ALL

    SELECT 'story' AS RowType , id , DATE , title , time_added
    FROM stories
    WHERE is_temp = 0 AND subject_id = '3'

) s
ORDER BY DATE , time_added
于 2012-11-27T09:53:23.623 に答える