В отношении добавления предложения ORDER BY:
Это, вероятно, элементарно для большинства здесь, но я подумал, что добавлю это.
Иногда вы не хотите, чтобы результаты смешивались, поэтому вам нужны результаты первого запроса, затем второго и так далее. Чтобы сделать это, я просто добавляю фиктивный первый столбец и порядок по нему. Из-за возможных проблем, связанных с забыванием псевдонима столбца в объединениях, я обычно использую порядковые номера в порядке по предложениям, а не имена столбцов.
Например:
SELECT 1, * FROM xxx WHERE z = 'abc'
UNION ALL
SELECT 2, * FROM xxx WHERE z = 'def'
UNION ALL
SELECT 3, * FROM xxx WHERE z = 'ghi'
ORDER BY 1
Пустой порядковый столбец также полезен для случаев, когда я собираюсь выполнить два запроса, и я знаю, что только один будет возвращать какие-либо результаты. Тогда я могу просто проверить порядковый номер возвращаемых результатов. Это избавляет меня от необходимости выполнять несколько вызовов базы данных и проводить проверку большинства пустых результатов.