各ユーザーに固有の日付/時刻の前に、すべてのユーザーからすべてのデータを返そうとしています。MySQL複数行サブクエリの修正
各ユーザーの正確な日付に関するすべてのデータを返すことができますが問題はありませんが、キー日付以下の日付を返すようにクエリを拡張する方法はわかりません。
私は2テーブルのSQLデータベースを持っています。
表1-「sales」には、すべてのトランザクションの確認レコードがあります。
- USER_ID(日付、その後、様々な購入情報)
表2 - "user_dataの" すべての閲覧データ
- のuser_id、record_date、purchase_made(purchase_madeがmisnamedさの記録を持っています購入ポップアップをトリガーしたが、実際に購入していない可能性があります。そのあと、ユーザーアクションデータがたくさんあります)
最初の購入前と購入前に、購入したユーザーのすべてのuser_dataレコードを取得する必要があります。私は次のように使用することができ、正確な購入記録を得るために
:
SELECT *
FROM user_data
WHERE user_id IN (SELECT user_id FROM sales)
AND record_date IN (SELECT min(record_date) FROM user_data WHERE purchase_made = 1 GROUP BY user_id);
今、私が本当にしたいすべてが「< =」私は「缶に、第2「IN」を変更することができることです1行以上を返すサブクエリでそれを行います。
免責事項 - 私は、データベースを書いていない、私は、データベースを変更する権限がありません(でも、私はそうする権利の人だろう)
免責事項2 - 私はpurchase_madeを使用していることを知っていますこれらのすべてが買物になるわけではないので、結果を少し汚すでしょう。しかし、レポートのために、sales_madeに関連付けられたタイムスタンプ(実際のデータセットで実行される大規模なクエリ比較によって証明されたもの)を使用するよりも、実際には信頼性が低いほど十分な時間をSalesテーブルから取得できます。しかし、上からの命令は重要ではない、彼らは "ほとんど"正確に満足しているでしょう。
私はちょうど何が起こったのか分かりません。しかし、私はそれが大好きだと思います。私は完璧に働いていると確信しています。私は研究するためにいくつかのことを教えてくれました。ありがとうQ! – Dulock
@Dulockは分かりません。これがあなたが維持しなければならないものなら、あるいは開発作業をしているなら、このタイプの概念の知識があなたを助けます! – xQbert