MySQL объединяет 2 таблицы, и результат должен быть в IN Third_table

0

Я получил 3 таблицы: запросы, d_requests (запросы на доставку) и s_requests (запросы отправки).

часть "d_requests" и "s_requests" всегда одинакова (userID, ticket_creation_date и некоторые другие данные). Таким образом, он был помечен из этих таблиц и помещен в "запросы" для каждой вставки в db.

Теперь мне нужно сделать следующее: JOIN-запросы и d_requests выбрать некоторые данные, а затем мне нужно убедиться, что такой выбор находится в столбце s s_requests "send_before"

SELECT r.type, r.request_from, r.request_to, d.departure_date
    FROM requests as r
    JOIN d_requests as d ON r.request_id = d.requests_id
    WHERE r.type='d' AND r.request_from='Beijing' 
    AND r.request_to='Tokyo' AND d.departure_date 
          IN (SELECT s.s_before from s_requests s where s.s_before<='user_defined_date')
    ORDER BY d.departure_date 

У меня есть результат, но он частичный. Как я вижу из БД, он должен дать мне несколько строк вывода, в то время как он генерирует только таблицу с 1 строкой. Даже если я установил "user_defined_date" на что-то вроде 2025-12-12, вывод все равно 1 строка (в то время как все билеты в 2017 году и в начале 2018 года).

Теги:
subquery

1 ответ

1
Лучший ответ

Я думаю, вам может понадобиться что-то вроде этого

SELECT r.type, r.request_from, r.request_to, d.departure_date
FROM requests as r
INNER JOIN d_requests as d ON r.request_id = d.requests_id
INNER JOIN s_requests as s ON r.request_id = s.requests_id
WHERE r.type='d' AND r.request_from='Beijing' 
AND r.request_to='Tokyo' AND s.s_before<='user_defined_date'
ORDER BY d.departure_date 

Но довольно сложно делать предложения, когда я не знаю полной схемы этой таблицы и чего именно вы пытаетесь достичь.

  • 0
    В конце концов я понял, что это именно то, что мне нужно сделать, и это работает хорошо, - просто найдите, что user_defined_date решает все это. но все равно спасибо за совет и усилие - я отмечу это как ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню