Нужна помощь со вложенным запросом Mysql

154
09 февраля 2022, 05:20

структура и данные таблицы тут https://pastebin.com/u1GY7gvr

запрос вида

SELECT login, subs_id, ip, login_out 
FROM cam.test 
WHERE subs_id IN (SELECT subs_id 
                  FROM cam.test 
                  GROUP BY subs_id 
                  HAVING COUNT(id) > 1);

на что получаю

login      |subs_id|ip            |login_out |
-----------|-------|--------------|----------|
baka       |     90|0.0.0.0       |         0|
baka2      |     90|92.24.19.31   |1578325414|
aniko1     |    143|76.18.113.22  |1578325421|
aniko2     |    143|111.195.16.161|1578325422|

Но мне нужно еще перед запросом отсеять те значения login_out, которые

UNIX_TIMESTAMP(NOW()) - login_out) < 30

Тоесть в итоге я должен получить

login      |subs_id|ip            |login_out |
-----------|-------|--------------|----------|
aniko1     |    143|76.18.113.22  |1578325421|
aniko2     |    143|111.195.16.161|1578325422|
Answer 1

Ну так и запишите то что вам нужно

SELECT 
  login, 
  subs_id, 
  ip, 
  login_out 
FROM 
  cam.test 
WHERE 
  subs_id IN (SELECT subs_id FROM cam.test GROUP BY subs_id HAVING COUNT(id) > 1) 
  and (UNIX_TIMESTAMP() - login_out) < 30;

Либо, если я неверно понял условие, вариант 2:

SELECT 
  login, 
  subs_id, 
  ip, 
  login_out 
FROM 
  cam.test 
WHERE 
  subs_id IN (
    SELECT 
      subs_id 
    FROM 
      cam.test 
    WHERE 
      (UNIX_TIMESTAMP() - login_out) < 30
    GROUP BY subs_id 
    HAVING COUNT(id) > 1
  );
Answer 2

решение такое:

SELECT login, subs_id, ip, login_out 
FROM cam.test 
WHERE subs_id IN (SELECT subs_id 
                  FROM cam.test 
                  where (UNIX_TIMESTAMP() - login_out) < 30
                  GROUP BY subs_id 
                  HAVING COUNT(id) > 1
                  )
and login_out > 0;
READ ALSO
Извлечь нужные столбцы

Извлечь нужные столбцы

У меня есть запрос:

95
Структура базы данных для авто

Структура базы данных для авто

Допустим на сайте будут автомобили, некоторые из которых будут электромобилиТ

81
Программа на java не находит файл по указанному пути

Программа на java не находит файл по указанному пути

Не получается обратиться к файлу, который лежит не в папке проектаВот этот кусок кода выводит "File not found"

105
Ошибка при сравнении объектов

Ошибка при сравнении объектов

При тестировании проверяются два методаВ первом мы сравниваем аналогичные объекты из списка, один из которых получен из класса DAOImpl, а другой...

98