簡體   English   中英

MySQL查詢以獲取子表和主表的數據

[英]MySQL query to get data of child and master table

我有兩個名為orderorderdetail表, orderdetail與鍵order_id我想查詢數據庫以獲取每個訂單的總計。

order表包含字段order_idcustomer_name等。

order_detail表具有id (primary key)order_number (foreign key)productqtyprice字段

我想要這樣的字段的結果:

order_idgrand_total

我為order_detail創建了一個視圖,如下所示:

CREATE OR REPLACE VIEW orderTotal AS
SELECT
    order_number,
    Round(sum(qty * price),2) as grandTotal
    FROM order_detail t group by order_number;

它工作得很好,但是有一個問題。 一些訂單的order_detail沒有參考數據,因此該視圖未列出該記錄。 我該如何解決? 請給我一個示例查詢。

它可能需要多個SQL查詢,但是我們可以將其構建為視圖嗎?

例如,我需要這樣的數據:

order_id    grandTotal
1           200
2           0                    // when data is missing
3           150.35 

如果您有父母記錄但沒有孩子,則可以幫助您:

SELECT
order.order_id,
coalesce(Round(sum(order_detail.qty * order_detail.price),2),0) as grandTotal
FROM order 
LEFT join order_detail on order_detail.order_number = order.order_id 
GROUP BY order.order_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM