我有一個連接表的問題,我還沒有設法解決。不知何故,我覺得它比我想象的更簡單。總之:MySQL多行加入
我有三個表:
訂單
orderlines
支付
在 「訂單」 每一行對應於一個客戶提出一個數量級。每個訂單都有一個order_id,它是該表的主鍵。在「訂單」中,我保留訂單的內容,即訂單上對產品和服務的引用。一個訂單可以並且通常具有很多訂單。最後,在付款方面,我爲每筆交易支付訂單時存儲一行。
理想情況下,一個訂單永遠不會有多個相應的付款行。但是因爲客戶是客戶,所以有人兩次支付相同的發票並不罕見,這暗示支付表可以爲一個訂單支付兩次或多次付款。
因此,創建一個以相關方式連接所有三個表的查詢會很有用,但我沒有設法這樣做。例如:
SELECT orders.order_id,SUM(orderlines.amount),SUM(payments.amount) FROM訂單 LEFT JOIN orderlines ON orders.order_id = orderlines.order_id LEFT JOIN付款 ON orders.order_id = payments.order_id GROUP BY orders.order_id
此連接的目的是查明訂單上的產品的SUM是否等於付款中的SUM。這裏的問題在於,兩張表付款和訂單行通過在加入時引起多行而「彼此分散」。
有沒有簡單的解決這個問題?
這是因爲使用你的左連接。嘗試將第二個LEFT JOIN替換爲常規JOIN。 –