Я бы спросил, что является лучшим и самым мощным способом извлечения данных из двух таблиц mysql на основе определенных фильтров, и если результат равен нулю, извлеките данные без каких-либо условий?Самый мощный способ выбрать данные MySql, если результат равен нулю
table user
ID NAME SURNAME
1 nick smith
2 john davis
3 mattew miller
4 roger wilson
5 karl taylor
6 july moore
7 michael white
8 genny lopez
table access
ID IDUSER LASTACCESS
1 1 2015-05-27 08:10:15
2 5 2015-05-27 08:25:23
3 4 2015-05-27 09:15:24
4 7 2015-05-27 09:28:24
5 7 2015-05-27 23:02:05
6 1 2015-05-28 01:10:55
7 2 2015-05-28 02:11:20
8 3 2015-05-28 04:15:49
предполагая, что сейчас 10:00 часов дня 05/28/2015, я хотел бы, чтобы извлечь доступы произошло в период до трех часов назад, и если результат равен нулю (и это) я хотел бы, чтобы запрос возвращал последние 3 доступа в порядке убывания даты. Спасибо
============================= ОБНОВЛЕНИЕ ================ =================
Я стараюсь это:
SELECT * FROM access
WHERE access.iduser = user.id
AND < DATE_SUB(NOW(), INTERVAL 3 HOUR)
OR user.id = ANY (SELECT * FROM access ORDER BY lastaccess DESC)
GROUP BY user.id ORDER BY lastaccess DESC
Я хотел бы получить результат непосредственно с MySQL без использования PHP
Определить мощный? – Epodax
Лучшая производительность –
Если вы предоставляете некоторые варианты, мы можем сказать вам, что лучше. В качестве альтернативы, если вы просто хотите решить проблему, рассмотрите следующий простой двухэтапный курс действий: 1. Если вы еще этого не сделали, укажите надлежащие DDL (и/или sqlfiddle), чтобы мы могли более легко повторить проблему. 2. Если вы еще этого не сделали, укажите желаемый набор результатов, соответствующий информации, представленной на шаге 1. – Strawberry