Как выполнить запрос множественного выбора из одной таблицы с лимитом 0, 1 и объединить все результаты - PullRequest
0 голосов
/ 11 июля 2019

Мне нужно запросить данные из той же таблицы с другим условием где.

Как показано ниже в запросе, мне нужно выполнить 2 запроса select из той же таблицы, а затем объединить результат в одну.

SELECT Username, AddTime
FROM Table1
WHERE Type = 3 AND AddTime>="2019-07-11 13:30:00" AND Username="Test1"
LIMIT 0, 1

SELECT Username, AddTime
FROM Table1
WHERE Type = 3 AND AddTime>="2019-07-11 13:40:00" AND Username="Test2"
LIMIT 0, 1

Мне нужно объединить результат обоих запросов в один единственный результат. так что, в принципе, если я скажу 5 таких запросов, мне нужно получить результат, число строк которого будет равно 5.

Я также мог бы использовать цикл и запрашивать оператор каждый раз, но это должно было бы создать много SQL-соединений. возможно ли достичь этого за одно соединение с БД?

Ответы [ 2 ]

1 голос
/ 11 июля 2019

Вы можете использовать запрос объединения здесь:

(SELECT Username, AddTime
 FROM Table1
 WHERE Type = 3 AND AddTime >= '2019-07-11 13:30:00' AND Username = 'Test1'
 LIMIT 1)
UNION ALL
(SELECT Username, AddTime
 FROM Table1
 WHERE Type = 3 AND AddTime >= '2019-07-11 13:40:00' AND Username = 'Test2'
 LIMIT 1);

Если вы используете MySQL 8+, также может быть способ использовать один запрос с ROW_NUMBER.

0 голосов
/ 11 июля 2019

вы пытаетесь получить две строки с одинаковыми условиями для другого имени пользователя, поэтому вы можете использовать IN

SELECT Username, AddTime
FROM Table1
WHERE Type = 3 AND AddTime>="2019-07-11 13:40:00" AND Username IN ("Test1","Test2");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...