mysql выбирает данные из двух таблиц и разной структуры
Привет, я создаю своего рода повестку дня/веб-сайт с php/mysql. В этой повестке дня есть публичные мероприятия и личные заметки пользователей, упорядоченные по дате. Мне нужно загрузить все события из ТАБЛИЦЫ СОБЫТИЙ в базе данных и заметки из ТАБЛИЦЫ ЗАМЕТОК. Но эти две таблицы имеют совершенно разную структуру, и у них просто одно и то же поле: ДАТА и ВРЕМЯ.
Как тогда я могу отсортировать по дате публичные события и личные заметки?
Пожалуйста, помогите мне! =) спасибо, Лука
2 answers
Улучшая ответ Дона на комментарии к операции, вы можете добавить столбец, чтобы узнать, в какой таблице была строка.
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
Поле типа может быть строкой или целым числом, чтобы легко отличить, из какой таблицы взята строка.