2017-12-17 10 views
0

リクエスト、d_requests(配送リクエスト)、s_requests(送信リクエスト)の3つのテーブルがあります。MySQLは2つのテーブルを結合し、結果はIN_typeにする必要があります。

"d_requests"と "s_requests"の部分は常に同じです(userID、ticket_creation_dateなどのデータ)。したがって、これらのテーブルからチャンクされ、dbへの各挿入時に「要求」に置かれました。

今、私は次の操作を行う必要がありますいくつかのデータを選択する要求とd_requestsに参加して、私はそのような選択は、私は結果を持って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 

にあることを確認する必要がありますが、それは部分的です。 DBから見ると、1行のテーブルしか生成しないうちにいくつかの行を出力するはずです。たとえ "user_defined_date"を2025-12-12のように設定しても、出力は1行(すべてのチケットは2017年と2018年初め)です。

+0

最終条件(...の中のd.departure_date)を削除すると、それ以上のレコードが返されますか?もしそうなら、少なくともあなたはその状態に何か問題があることを知っています。 d.departure_dateが他のテーブルのs_before日付と正確に一致しない可能性があります。すなわち、秒またはミリ秒が異なる場合、出発日とuser_defined_dateを単に比較するほうがいいですか? –

+0

@RichSはい、サブクエリなしでは、クエリはより多くの結果を返します。 – Zerus

+0

@RichS出発日とuser_defined_dateを比較するほうが良いですか?それは私がやっていることですが、これを行うには3つのテーブルを調べる必要があります。 – Zerus

答えて

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を使ってそれをすべて解決します。しかし、助言と努力のおかげで、まだありがたいです。 – Zerus

関連する問題