За последние 24 часа нас посетили 21616 программистов и 1018 роботов. Сейчас ищут 655 программистов ...

WHERE ID IN (MAX(ID), MIN(ID))

Тема в разделе "MySQL", создана пользователем shiyri, 2 фев 2021.

  1. shiyri

    shiyri Активный пользователь

    С нами с:
    8 июн 2019
    Сообщения:
    111
    Симпатии:
    0
    Здравствуйте помогите объединить два запроса?
    Код (Text):
    1. SELECT MAX(ID), min(id) FROM `gpsdata`
    2. WHERE `DEVICE_ID`= 354007390
    3. AND  `timestamp` BETWEEN '2021-01-01'
    4. AND '2021-01-31'
    выбираем два ИД и вставляем
    Код (Text):
    1. SELECT id, `TIMESTAMP`, `TRACK`
    2. FROM `gpsdata`
    3. WHERE ID IN(Сюда)
    Пробовал так:
    Код (Text):
    1. SELECT id, `TIMESTAMP`, `TRACK`
    2. FROM `gpsdata` WHERE ID IN
    3. (EXISTS (SELECT MAX(ID), min(id)
    4. FROM `gpsdata` WHERE `DEVICE_ID`= 354007390
    5. AND  `timestamp` BETWEEN '2021-01-01'
    6. AND '2021-01-31'))
    не получается.....
    --- Добавлено ---
    Так тоже не получается:
    Код (Text):
    1. SELECT id, `TIMESTAMP`, `TRACK`
    2. FROM `gpsdata`
    3. WHERE ID IN
    4. (  
    5.     EXISTS(SELECT MAX(ID) FROM `gpsdata`
    6.  
    7. WHERE `DEVICE_ID`= 354007390 AND  `timestamp` BETWEEN '2021-01-01' AND '2021-01-31')
    8.     ,
    9.     EXISTS(SELECT MIN(ID) FROM `gpsdata`
    10.  
    11. WHERE `DEVICE_ID`= 354007390 AND  `timestamp` BETWEEN '2021-01-01' AND '2021-01-31')
    12. )
    и обрабатывается оч долго
     
  2. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    А зачем вы EXISTS используете?
     
  3. shiyri

    shiyri Активный пользователь

    С нами с:
    8 июн 2019
    Сообщения:
    111
    Симпатии:
    0
    Справедливо,
    СпсиБО!!!
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    Код (SQL):
    1. SELECT b.id, b.`TIMESTAMP`, b.`TRACK`
    2. FROM
    3.   (SELECT MAX(id) AS max_id, MIN(id) AS min_id FROM gpsdata) AS a
    4.   JOIN gpsdata AS b ON b.id IN(a.min_id, a.max_id)