Ако искаш да изкараш общ резултат от няколко таблици, които имат еднакви колони, може да направиш нещо подобно:
SELECT UID, eventtime, 'changepass' AS activity FROM log_changepass
UNION
SELECT UID, eventtime, 'brute' AS activity FROM log_brute; |
Това цялото е една заявка по принцип, която се състои от няколко под заявки, съединени с UNION. 'changepass' as activity и 'brute' as activity са добавени, за да се подсещаш като излезе резултата от коя таблица е дошъл всеки ред. Другите колони в таблиците може да са всякакви - на заявката не и пука, изкарва ти колоната с потребителските ID-та, времето и "вида" на събитието (в случая смяна на парола или брут атака).
Като резултат ще имаш нещо подобно:
UID eventtime activity
1 2013-01-04 18:36:23 changepass
0 2013-02-02 16:23:12 changepass
1 2012-04-08 18:12:45 changepass
1 2010-11-21 11:12:32 brute
0 2009-02-11 05:56:21 brute |
Дръж си логовете в различни таблици, ако данните за различните събития са прекалено различни по количество и вид. Но ако са сходни, би било по-добре да ги държиш в една таблица, с 2-3 по-общи полета.
Редакция: Забравих да сложа ORDER BY eventtime DESC в края, но ти си умен и ще се сетиш