一個mysql聯(lián)表查詢的問題
問題描述
stock(進(jìn)貨單表)stock_id -- 進(jìn)貨單ID主鍵stock_product(進(jìn)貨單和產(chǎn)品關(guān)系表)stock_id -- 進(jìn)貨單IDproduct_sn -- 產(chǎn)品編號(廠家提供的編號,每個產(chǎn)品一個)product_no -- 產(chǎn)品自編號(針對該進(jìn)貨單的每個產(chǎn)品的自編號,同一進(jìn)貨單內(nèi)自編號和產(chǎn)品編號是一一對應(yīng),但不同進(jìn)貨單里可能有相同的自編號對應(yīng)不同的廠家產(chǎn)品編號)quantity -- 進(jìn)貨數(shù)量shipment(出貨單表)shipment_id -- 出貨單IDstock_id -- 進(jìn)貨單IDshipment_product(出貨單和產(chǎn)品關(guān)系表)shipment_id -- 出貨單IDproduct_no -- 產(chǎn)品自編號quantity -- 出貨數(shù)量
# 查詢進(jìn)貨單ID為1的產(chǎn)品出貨數(shù)量明細(xì)SELECT sh.stock_id, st_p.product_sn, sh_p.quantityFROM shipment_product sh_p LEFT JOIN shipment sh ON sh.shipment_id=sh_p.shipment_id LEFT JOIN stock_product st_p ON st_p.product_no=sh_p.product_no WHERE sh.stock_id=1
這個SQL查出來的出貨情況是不對的,請問該怎么寫?
問題解答
回答1:SELECT *FROM shipment_product shipment_productLEFT JOIN shipment shipment ON shipment.shipment_id = shipment_product.shipment_idWHERE shipment_product.product_no IN (SELECT stock_product.product_noFROM stock_product stock_productLEFT JOIN stock stock ON stock.stock_id = stock_product.stock_idWHERE stock_product.stock_id = 1 )回答2:
第二個left join stock表試試吧
回答3:如果 stock_product表中的字段product_no等于shipment_product表
SELECT *FROM shipment_product AS sh_pWHERE product_no = ( SELECT stock_id FROM stock_product AS st_p WHERE st_p.stock_id = 1 )
不一樣的話
SELECT *FROM shipment_product AS sh_pWHERE sh_p.shipment_id = ( SELECT shipment_id FROM shipment AS st_p WHERE st_p.stock_id = 1 )
相關(guān)文章:
1. angular.js - 三大框架react、vue、angular的分析2. python 如何實現(xiàn)PHP替換圖片 鏈接3. mysql - 一個表和多個表是多對多的關(guān)系,該怎么設(shè)計4. android-studio - Android 動態(tài)壁紙LayoutParams問題5. mysql主從 - 請教下mysql 主動-被動模式的雙主配置 和 主從配置在應(yīng)用上有什么區(qū)別?6. angular.js - 不適用其他構(gòu)建工具,怎么搭建angular1項目7. html5 - iOS的webview加載出來的H5網(wǎng)頁,怎么修改html標(biāo)簽select的樣式字體?8. 主從備份 - 跪求mysql 高可用主從方案9. python如何不改動文件的情況下修改文件的 修改日期10. python - django 里自定義的 login 方法,如何使用 login_required()
