MySql несколько запросов к одной таблице одновременно - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть таблица (записи) с типом, asset_one, asset_two, timestamp, status, и мне нужно получить данные в 3 разных условиях с разными номерами лимитов.

Sth, как это: [ group_A : all records with type A and status = confirmed limit to 10 order by timestamp and set asset_one as first_asset and asset_two as second_asset, group_B : same as previuse but for where type = B and set asset_one as second_asser and asset_two as first_asset, unconfirmes : all records with status = unconfirmed and limit to 20 order by timestamp ]

Я пробовал объединение, но разделение данных после выборки имеет одинаковую стоимость времени для запросов на выборку отдельно! Мне нужно получить эти данные как можно быстрее.

Спасибо за ваше внимание. Я с нетерпением жду вашего ответа.


Редактировать:

схема таблицы:

+----+-----------+-----------+------+--------+-----------+
| id | asset_one | asset_two | type | status | timestamp |
+----+-----------+-----------+------+--------+-----------+

пример запроса (группа A):

SELECT
    *,
IF
    ( type = 'A', asset_one, asset_two ) AS first_asset,
IF
    ( type = 'A', asset_two, asset_one ) AS second_asset 
FROM
    records
WHERE
    (
        STATUS = 'confirmed' 
        AND (
                    ( type = 'A' AND asset_one = 'btc' AND asset_two = 'eth' ) 
                    OR 
                    ( type = 'B' AND asset_one = 'eth' AND asset_two = 'btc' ) 
                ) 
    )
    ORDER BY
    timestamp DESC 
    LIMIT 10

я могу получить свои данные Как я хочу, но в 3 разных запросах, я имею дело с большими данными и многими пользователями, я хочу получить все данные, которые мне нужны, за одно выполнение. и выход должен быть такой:

{
'group_a' : [query a results],
'group_b' : [query b results],
'group_unconfirmed' : [query results for fetching unconfirmed records],
}
...