2012-04-16 3 views
1

Я создаю базу данных персонала и несколько таблиц, относящихся к пользователю, включают в себя такие вещи, как медицинские осмотры, паспорт, прививки, членство и т.д.MySQL Получить результаты из нескольких таблиц на основе даты

Каждые из этих таблиц содержат запись истечения, на которую я хочу запросить все таблицы. В основном я хочу иметь список элементов, которые собираются истечь в определенное время, что-то вроде:

John - Passport expires in 1 month 
Emma - Vaccination expires in 1 month 
Carol - Vaccination expires in 3 weeks 
Josh - Medical expires in 2 weeks 
James - Passport expires in 3 days 

Что такое лучший способ сделать это, это может быть как-то сделать в одном запросе?

Заранее спасибо

+1

Вы ищете «щекотливое», который говорит, что будет истекающий в ближайшее время (так что первичный ГДЕ свидание)? Или вы ищете что-то от человека, которое показывает срок действия для каждого элемента? Можете ли вы представить некоторое представление о структуре таблиц? – geoB

+0

Я искал следующую запись. Извините, мои объяснения никогда не бывают очень хорошими, это чудо, что кто-то понял. Спасибо за ваше время в любом случае. – Sean

ответ

0

Это может быть сделано в одном запросе с помощью объединения:

(SELECT name, 'passport', expiry_date FROM table_passport WHERE ...) 
UNION ALL 
(SELECT name, 'vaccination', expiry_date FROM table_vaccinations WHERE ...) 
UNION ALL 
(SELECT name, 'medical', expiry_date FROM table_medical WHERE ...) 
ORDER BY name; 
+0

Это именно оно, спасибо. – Sean

Смежные вопросы