Привет, я создаю своего рода повестку дня / сайт с php / mysql. В этой повестке дня публикуются публичные мероприятия и личные заметки пользователей, упорядоченные по дате. Мне нужно загрузить все события из СОБЫТИЙ ТАБЛИЦЫ в базу данных и примечания из NOTES TABLE. Но эти две таблицы имеют совершенно другую структуру, и у них просто одно поле: DATETIME.
Как я могу сортировать по дате публичные мероприятия и личные заметки?
Пожалуйста, помогите мне! =) спасибо luca
Улучшая ответ Дона на комментарии OP, вы можете добавить столбец, чтобы узнать, в какой таблице была строка.
SELECT 'events' As Tbl, datetime, location, organizer, NULL as notes FROM events UNION ALL SELECT 'user_notes' As Tbl, datetime, NULL, NULL, notes FROM user_notes ORDER BY datetime DESC
Используйте UNION ALL
с двумя запросами. В запросе каждой таблицы будет только NULL
во всех столбцах для другой таблицы. Например:
SELECT 'event' as type, datetime, location, organizer, NULL as notes FROM events UNION ALL SELECT 'user_note', datetime, NULL, NULL, notes FROM user_notes ORDER BY datetime DESC
иSELECT 'event' as type, datetime, location, organizer, NULL as notes FROM events UNION ALL SELECT 'user_note', datetime, NULL, NULL, notes FROM user_notes ORDER BY datetime DESC
иSELECT 'event' as type, datetime, location, organizer, NULL as notes FROM events UNION ALL SELECT 'user_note', datetime, NULL, NULL, notes FROM user_notes ORDER BY datetime DESC
Поле типа может быть либо строкой, либо целым числом, чтобы легко отличить, из какой таблицы была получена строка.