やや複雑なクエリを機能させようとしていますが、まったく運がありません。
次のテーブルがあるとします。
カート項目:
+--------------------------------------------+
| item_id | cart_id | movie_name | quantity |
+--------------------------------------------+
| 0 | 0 | braveheart | 4 |
| 1 | 0 | braveheart | 9 |
| . | . | . | . |
| . | . | . | . |
| . | . | . | . |
| . | . | . | . |
+--------------------------------------------+
映画:
+------------------------------+
| movie_id | movie_name | ... |
+------------------------------+
| 0 | braveheart | . |
| . | . | . |
| . | . | . |
| . | . | . |
| . | . | . |
+------------------------------+
価格:
+-----------------------------------------+
| id | movie_name | quantity | price_per |
+-----------------------------------------+
| 0 | braveheart | 1 | 1.99 |
| 1 | braveheart | 2 | 1.50 |
| 2 | braveheart | 4 | 1.25 |
| 3 | braveheart | 8 | 1.00 |
| . | . | . | . |
| . | . | . | . |
| . | . | . | . |
| . | . | . | . |
| . | . | . | . |
+-----------------------------------------+
price_per
テーブルからデータを結合する必要がありますが、テーブルから適切なものを取得する必要があるため、複雑さが増しpricing
ます。各 に対して 1 つの価格のみを返す必要があります。これは、カート項目の が少なくとも表の数量である表cart_item
の最低価格である必要があります。pricing
quantity
pricing
cart_items
したがって、クエリは次の項目ごとに返されます。
+---------------------------------------------+
| item_id | movie_name | quantity | price_per |
+---------------------------------------------+
例 1:
クエリに渡される変数: cart_id = 0。戻り値:
+---------------------------------------------+
| item_id | movie_name | quantity | price_per |
+---------------------------------------------+
| 0 | braveheart | 4 | 1.25 |
| 1 | braveheart | 9 | 1.00 |
+---------------------------------------------+
これは最小限の例であり、追加のデータは前述のテーブル (特に、movies テーブル) から取得されることに注意してください。
このクエリはどのように構成できますか? 左結合とサブクエリを使用してみましたが、難しい部分は価格を取得することであり、私が試したものは何も機能しませんでした.
ご協力いただきありがとうございます。
編集:
これは、「実際の」テーブルで作業しているものと似ていると思います。
SELECT t1.item_id, t2.movie_name, t1.quantity
FROM cart_items t1
LEFT JOIN movies t2 ON t2.movie_name = t1.movie_name
WHERE t1.cart_id = 0
私がそれを正しく書いたと仮定すると(私はすぐに実際のクエリを「移植」しようとしました)、現在の出力は次のようになります。
+---------------------------------+
| item_id | movie_name | quantity |
+---------------------------------+
| 0 | braveheart | 4 |
| 1 | braveheart | 9 |
+---------------------------------+
私が抱えている問題は、映画の特定の数量で価格に参加することです. 私は単にそれを行う方法を理解できません。