一個mysql聯(lián)表查詢的問題
問題描述
stock(進貨單表)stock_id -- 進貨單ID主鍵stock_product(進貨單和產品關系表)stock_id -- 進貨單IDproduct_sn -- 產品編號(廠家提供的編號,每個產品一個)product_no -- 產品自編號(針對該進貨單的每個產品的自編號,同一進貨單內自編號和產品編號是一一對應,但不同進貨單里可能有相同的自編號對應不同的廠家產品編號)quantity -- 進貨數(shù)量shipment(出貨單表)shipment_id -- 出貨單IDstock_id -- 進貨單IDshipment_product(出貨單和產品關系表)shipment_id -- 出貨單IDproduct_no -- 產品自編號quantity -- 出貨數(shù)量
# 查詢進貨單ID為1的產品出貨數(shù)量明細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 )
相關文章:
1. mysql數(shù)據(jù)庫做關聯(lián)一般用id還是用戶名2. javascript - 如何用最快的速度C#或Python開發(fā)一個桌面應用程序來訪問我的網(wǎng)站?3. thinkPHP5中獲取數(shù)據(jù)庫數(shù)據(jù)后默認選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙4. python小白 關于類里面的方法獲取變量失敗的問題5. python - 如何對列表中的列表進行頻率統(tǒng)計?6. linux運維 - python遠程控制windows如何實現(xiàn)7. Python2中code.co_kwonlyargcount的等效寫法8. django - Python error: [Errno 99] Cannot assign requested address9. python小白,關于函數(shù)問題10. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時間會消失是什么情況?
