Получение данных из двух таблиц с условием SQL - PullRequest
1 голос
/ 05 августа 2020

Мне нужна помощь с запросом SQL. Я пытался понять это в течение недели.

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

Каждая таблица может иметь 4 вида спорта с идентификатором из подключенной таблицы.

Таким образом, дата может быть одинаковой 4 раза, но каждый раз с другим видом спорта. Это означает, что если в первой таблице дата 2020-01-01, а спорт - ID 1, а во второй таблице - дата 2020-01-01 и спорт ID 2, данные будут взяты из обеих таблиц. Но если в первой таблице дата 2020-01-01 и идентификатор вида спорта 1, а во второй таблице дата 2020-01-01 и идентификатор вида спорта 1, данные берутся только из первой таблицы.

А можно как-нибудь? Буду рад любой идее. Спасибо!

Я использую MariaDB. Первая таблица называется резервированием, а вторая резервированием_r.

table1 table2

Example with result:

введите описание изображения здесь

1 Ответ

1 голос
/ 05 августа 2020

Я думаю, вы хотите union all с некоторой фильтрацией:

select r.*
from reservation r
union all
select rr.*
from reservation_r rr
where not exists (select 1
                  from reservation r
                  where r.customer_idcustomer = rr.customer_idcustomer and
                        r.date = rr.date and
                        r.sport_idsport = rr.sport_idsport
                 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...