Запрос работает, но не дает правильных результатов.Есть ли альтернатива, которую я могу использовать? - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь войти в Darby Query. Работает нормально, но пропускает некоторые результаты при извлечении данных из базы данных двух таблиц. Когда я пытаюсь получить больше данных, это дает правильные результаты, но не все результаты правильные.

Данные таблицы X и Y.

Таблица X:

A       B       Time
5509    7015    11:19:40
9506    7072    11:19:43

Таблица Y:

A       B       Time
7072    9506    11:19:43
6247    669     11:19:45 

Запрос:

SELECT orig.A, orig.B, orig.TIME
from  X orig INNER JOIN
      (SELECT A, B, TIME
       from X
      ) t1 
      ON t1.B = orig.A and t1.TIME = orig.TIME UNION ALL
SELECT orig.A, orig.B, orig.TIME
from  Y orig INNER JOIN
      (SELECT A, B, TIME
       from Y
      ) t1
      ON t1.B = orig.A and t1.TIME = orig.TIME
ORDER BY TIME

Запрос не возвращает результата.

Требуемый результат:

A       B       Time
9506    7072    11:19:43
7072    9506    11:19:43

1 Ответ

0 голосов
/ 05 мая 2019

Вы, кажется, хотите:

select x.A, x.B, x.TIME
from x
where exists (select 1 from y where y.time = x.time)
union all
select y.A, y.B, y.TIME
from y
where exists (select 1 from x where x.time = y.time);

Если это не возвращает строк, то, вероятно, времена немного отличаются.Вы можете заменить = выражением, таким как:

y.time > x.time - interval 1 second and
y.time < x.time + interval 1 second
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...