SELECT OQ.MATNAME,OQ.MATMODEL,OQ.MATTYPE,OQ.ASSORTMENT_4
FROM bdta_material OQ,
(SELECT *
FROM OUT_BILL ) OB
WHERE OB.MATERIALID = OQ.MATERIALID
SELECT OP.OUTPROOFNO ,OP.CREATEDATE,OB.MATERIALID,OB.TASKQTY,OB.FINISHQTY
FROM OUT_BILL OB,
(SELECT *
FROM OUT_PROOF
WHERE PROTYPE = '333f9e48-93d6-48fd-9fa7-8229d222fd42'
AND OUTSTATE IN (0,1)
) OP
WHERE OB.OUTPROOFID = OP.OUTPROOF
將以上兩段陳述句關聯起來,不會。。。help
uj5u.com熱心網友回復:
group by分組查詢uj5u.com熱心網友回復:
第一個sql把表OQ和表OB做笛卡爾積,但是你的結果集里不包含OB的欄位,那做鏈接的目的在什么地方第二個sql你用的笛卡爾積關聯關聯兩張表,最后在where篩選OB.OUTPROOFID = OP.OUTPROOF符合條件的,這樣會很浪費資源,因為會先做笛卡爾積,計算很多資料,最好用
SELECT OP.OUTPROOFNO ,OP.CREATEDATE,OB.MATERIALID,OB.TASKQTY,OB.FINISHQTY
FROM OUT_BILL OB LEFT JOIN
(SELECT *
FROM OUT_PROOF
WHERE PROTYPE = '333f9e48-93d6-48fd-9fa7-8229d222fd42'
AND OUTSTATE IN (0,1)
) OP
ON OB.OUTPROOFID = OP.OUTPROOF
這樣應該好一點。
你說把兩個陳述句關聯,是做連接查詢還是什么,說清楚點,要實作什么,最好給點原表的資料和預期的結果
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/87758.html
標籤:基礎和管理
