我試圖得到一個有點複雜的查詢工作,我沒有任何運氣。如何做最少每組查詢的左連接?
假設我有以下表格:
cart_items:
+--------------------------------------------+
| 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 |
| . | . | . | . |
| . | . | . | . |
| . | . | . | . |
| . | . | . | . |
| . | . | . | . |
+-----------------------------------------+
我需要從表中加入數據,但有一個額外的複雜性,我需要從pricing
表中獲取相應的price_per
。每個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 |
+---------------------------------------------+
請注意,這是一個極簡主義的示例,並且將從上述表格(特別是電影表格)中提取附加數據。
這個查詢如何組成?我試過使用左連接和子查詢,但困難的部分是得到的價格,沒有我已經嘗試過的工作。
感謝您的幫助。
編輯:
我認爲這是類似於我已經與我的「真正的」表工作:
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 |
+---------------------------------+
我遇到的麻煩是加入一定數量的電影價格。我根本無法弄清楚如何去做。
請張貼你最接近的嘗試。否則這讀作爲doitforme.com請求。 – Randy 2012-07-08 18:33:34
好的。我發佈的所有內容都被簡化了,但我會嘗試「移交」我目前的查詢。 – Nate 2012-07-08 18:36:49
@Randy - 好的,我做到了。它沒有什麼意義,因爲t2.movie_name也可以從cart_items中獲得,但正如我所提到的,這個例子是簡化的,所以我真的會從t2(電影)中獲得更多的信息。殘缺於我的部分是如何增加價格。 – Nate 2012-07-08 18:41:18