MySQL выбрать данные из двух таблиц и различной структуры - PullRequest
2 голосов
/ 17 февраля 2011

Привет, я создаю своего рода программу / сайт с php / mysql.В этой повестке дня есть публичные события и личные заметки пользователей, упорядоченные по дате.Мне нужно загрузить все события из таблицы событий в базу данных и заметки из таблицы примечаний.Но эти две таблицы имеют совершенно разную структуру, и они просто имеют одно и то же поле: DATETIME.

Как мне сортировать по дате публичные события и личные заметки?

Пожалуйста, помогите мне!=) спасибо Люка

Ответы [ 2 ]

2 голосов
/ 17 февраля 2011

Улучшая ответ Дона на комментарии ОП, вы можете добавить столбец, чтобы узнать, в какой таблице была строка.

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
2 голосов
/ 17 февраля 2011

Используйте 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

Поле типа может быть либо строкой, либо целым числом, чтобы легко отличить, из какой таблицы произошла строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...