如何查询数据库以获得待处理的 PO 列表。
我有四个带有此字段的表purchase_order
`po_id` // primary key
`supplier_id`
'date`
`status`
'description`
`po_detail` with this fields
`pod_id` // primary key
`po_id`
`product_id`
`rate`
`qty`
`grn` with this fields
`grn_id` // primary key
`date`
`description`
`supplier_id`
`grn_detail` with this fields
`grnd_id` // primary key
`grn_id`
`rate`
`qty`
`product_id`
`po_id`
现在我要从 po_detail 中选择所有产品,这些产品未使用该 po_id
输入到 grn_detail
中,或者输入到 grn_detail
中,但 grn_detail.qty
是具有相同 po_id 的 < po_detail.qty
您可以写下查询吗?
如果可能,请在sqlfiddle中编写演示
请查看SQLFIDDLE
最佳答案
第一个答案很好,但我认为运营商可能会有一些变化。 类似的东西>=
SELECT * FROM `po_detail`
WHERE
`po_detail`.`po_id` NOT IN
(SELECT `grn_detail`.`po_id` FROM `grn_detail`
WHERE (`grn_detail`.`po_id` <> `po_detail`.`po_id`) OR
(`grn_detail`.`qty` >= `po_detail`.`qty`))
AND your_other_filter_if_you_want_to
关于MYSQL 查询待处理 `Purchase Order`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32263678/