SQL запрос полного соединения

У меня есть 2 таблицы в mariadb, которые являются лечения и оплаты.

Обработки: id (int (11)), имя_ лечения (varchar (255)), дата_ лечения (дата)

Платежи: id (int (11)), treatment_id (int (11)), payment_amount (десятичное (10,2)), payment_date (дата)

Я хочу перечислить записи из обеих таблиц для заданного диапазона дат, например, с 2016-01-01 по 2016-06-06

1-Если лечение находится между заданным диапазоном дат и имеет оплату ИЛИ
2 — если лечение не находится в промежутке между датами, НО имеет платеж с датой платежа в промежутке между указанным диапазоном дат.

Кто-нибудь может помочь мне для постановки запроса?

0

Решение

Если я правильно понимаю, вам не нужно full outer join, Вам просто нужно inner join вместе с правильным where пункт:

select t.*, p.*
from treatments t inner join
payments p
on t.id = p.treatment_id
where t.treatment_date between '2016-01-01' and '2016-06-06' or
p.payment_date between '2016-01-01' and '2016-06-06';
2

Другие решения

Это можно сделать с помощью UNION следующим образом:

SELECT * FROM Treatments WHERE treatment_date BETWEEN #01/01/2016# AND #06/06/2016#
UNION
SELECT * FROM  Payments WHERE treatment_date BETWEEN #01/01/2016# AND #06/06/2016#

используйте это как одиночный запрос.

1

Для начала, к обеим таблицам присоединятся следующие элементы, вам нужно будет добавить свою фильтрацию по дате:

SELECT *
FROM Treatments as t1, Payments as t2
WHERE t1.id = t2.treatment_id;

Я верю, что вы можете сделать все остальное самостоятельно.

0
По вопросам рекламы [email protected]