我有3个表:request,d_requests(delivery requests)和s_requests(send requests)。
“d_requests”和“s_requests”的一部分始终相同(userID,ticket_creation_date和其他一些数据)。所以它从这些表中分块并在每次插入db时发出“请求”。
现在我需要做以下事情:JOIN请求和d_requests选择一些数据,然后我需要确保这样的选择是IN 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年初)。
答案 0 :(得分: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
但是当我不知道那些表的完整模式以及你想要实现的目标时,很难提出建议。