如何用SQL查詢如下資料結構的商品剩餘庫存

來源:互聯網
上載者:User
關鍵字 php mysql

問題描述:根據店鋪ID查出該店鋪所有商品的剩餘庫存量?

業務說明:該商品剩餘庫存量 = 該商品總入庫記錄和 - 該商品總銷售和。

抽象以後的資料庫表結構如下:

問題抽象:用MySQL查詢1號店鋪所有商品的剩餘庫存資訊?

致謝:希望有大神幫忙解決下,SQL學的實在太爛,如果一條SQL不能實現,可以說一下SQL跟PHP結合實現的方法,當然如果SQL能實現最好。非常感謝!

回複內容:

問題描述:根據店鋪ID查出該店鋪所有商品的剩餘庫存量?

業務說明:該商品剩餘庫存量 = 該商品總入庫記錄和 - 該商品總銷售和。

抽象以後的資料庫表結構如下:

問題抽象:用MySQL查詢1號店鋪所有商品的剩餘庫存資訊?

致謝:希望有大神幫忙解決下,SQL學的實在太爛,如果一條SQL不能實現,可以說一下SQL跟PHP結合實現的方法,當然如果SQL能實現最好。非常感謝!

看來沒人回答啊,其實這也是資料庫設計時候的思想吧。如果入庫記錄跟銷售記錄合在一張表,然後用一條sql就可以解決,合并以後的表結構

店鋪ID 商品ID 入庫 銷售
001 1 10 3
001 2 10 5

SQL如下

select productid, sum(stock)-sum(sale) as total from `record` where shopid = '001' GROUP BY productid;

[個人觀點]這樣的設計機構與上邊相比較結構上沒有太大差異,設計上也基本合理,從計算上來講,現在這種結構應該更快一些。

給你一個方向吧!先用group by 過去單款商品的銷售總量,接著使用表關聯的方式,將進庫量與銷售總量進行運算

設計問題,很典型拍腦袋設計,沒有考慮需求分析

這是sql語句,多表查詢,一條sql實現,select shop.*,product.*,stock.*,sale.*,stock.count - sale.count as ss from shop left join product on shop.id = product.shop_id left join stock on product.id = stock.productid left join sale on product.id = sale.product_id where stock.count > 0 and sale.count > 0,最後結果已經給出每種商品的剩餘庫存,

很明顯,我認為資料表設計不合理,既然剩餘庫存這麼重要,我認為需要增加這個欄位。
多表關聯查詢的速度是比較慢,而且特別耗費CPU,而剩餘庫存需要在很多時候被讀取,每次這樣查詢得到顯然我認為是不合理的。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.