За последние 24 часа нас посетили 17480 программистов и 1723 робота. Сейчас ищут 1518 программистов ...

Превращение трех SELECT запросов в один

Тема в разделе "MySQL", создана пользователем SBAlex, 4 авг 2023.

  1. SBAlex

    SBAlex Новичок

    С нами с:
    20 апр 2022
    Сообщения:
    26
    Симпатии:
    1
    У меня получилось вот так, но не знаю насколько оптимальный вариант:

    Код (Text):
    1.  
    2. SELECT * FROM
    3.   (
    4.    SELECT COUNT(DISTINCT(id)) as orders_wait FROM log_orders WHERE date_add BETWEEN '$getDate 00:00:00' AND '$getDate 23:59:59' AND status = '1'
    5.    ) T1,
    6. (
    7.    SELECT COUNT(DISTINCT(id)) as orders_hold FROM log_orders WHERE date_add BETWEEN '$getDate 00:00:00' AND '$getDate 23:59:59' AND status = '2'
    8.    ) T2,
    9. (
    10.    SELECT COUNT(DISTINCT(id)) as orders_accept FROM log_orders WHERE date_add BETWEEN '$getDate 00:00:00' AND '$getDate 23:59:59' AND status = '3'
    11.    ) T3
     
  2. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online
    Код (Text):
    1. SELECT
    2.     COUNT(DISTINCT(CASE WHEN status = 1 THEN  id END)) as orders_wait,
    3.     COUNT(DISTINCT(CASE WHEN status = 2 THEN  id END)) as orders_hold,
    4.     COUNT(DISTINCT(CASE WHEN status = 3 THEN  id END)) as orders_accept
    5. FROM log_orders
    6. WHERE date_add BETWEEN '$getDate 00:00:00' AND '$getDate 23:59:59';
    SQLize - format run and share SQL queries online
     
  3. SBAlex

    SBAlex Новичок

    С нами с:
    20 апр 2022
    Сообщения:
    26
    Симпатии:
    1
    Круто, я только не могу понять, Ваш вариант более оптимальный и более быстрый или просто альтернативный? То что он более компактный - факт.
     
  4. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online
    и более оптимальный и более быстрый
     
  5. SBAlex

    SBAlex Новичок

    С нами с:
    20 апр 2022
    Сообщения:
    26
    Симпатии:
    1
    Благодарю Вас.
     
  6. Slava Rozhnev

    Slava Rozhnev Новичок

    С нами с:
    6 сен 2021
    Сообщения:
    87
    Симпатии:
    26
    Адрес:
    https://phpize.online