Рассмотрим у меня есть следующие две таблицы (грубые эскизы):заказ MySQL по времени на двух разных таблиц
Таблица 1:
- t1Id (Int, первичный ключ)
- Время (DateTime)
- attribute1
- attribute2
- attribute3
Таблица 2:
- t2Id (Int, первичный ключ)
- Время (DateTime)
- attribute4
- attribute5
Предположим, что я хочу, чтобы выбрать результаты из обеих таблиц и заказать их на time
, это выполнимо? Я сам думал, что это было бы возможно, если:
- Вы можете создать союз со всеми столбцами обеих таблиц, но
time
, разделяемых над объединением. NULL
значения в местах, где это не соответствует. Например, строка таблицы 1 в этом объединении имела быNULL
в t2Id, attribute4 и attribute5.- Дополнительный столбец, указывающий, из какой таблицы были взяты исходные строки (те, у которых значения
NULL
).
Как бы я мог спроектировать такой запрос наиболее эффективным способом?
Я бы сделал это, как вы упоминаете: UNION с ORDER BY time. дополнительная колонка зависит от вас. Если вы хотите, чтобы что-то сообщило вам, откуда оно взялось. –
И что случилось с 'UNION' +' ORDER BY'? Если вы хотите, чтобы ваш результат был как один, вы должны это сделать точно. Что касается 'NULL'-s: уточните, что с ними не так: для объединения все ваши таблицы должны иметь одинаковое количество столбцов –