$check = "SELECT up.quantity AS stockAble,
oh.quantity AS stockAsk
FROM stock_update up
JOIN orders oh
ON up.quantity > oh.quantity
AND up.package = oh.product_id
WHERE oh.reference_no = 12345
AND up.location_id = 4
";
在查询中,我根据引用号选择所有数量的包。如果其中一个字段不存在,则返回null mysql
例如,在12345的参考号码中,有三行,每个不同数量的三个产品。
在oh.quantity
Stock Ask
从orders
+---------------+--------------+------------+
reference_no product_id quantity
+---------------+--------------+------------+
12345 1 30
12345 2 10
12345 3 20
但是它需要检查,如果被询问的数量或该产品是在我们的表中。
Stock Available
在stock_update
+--------------+------------+
product_id quantity
+--------------+------------+
1 10
2 15
3 25
基于上述两个表中,有一个产品,其它的可用数量小于其要求的数量。它是在行或在
product_id如果条件如此,那么我希望查询返回什么也没有。
如果只有所询问的所有产品和数量都可用,则查询将返回true。
如何在查询我已经在上面尝试过吗?非常感谢你的帮助。
实际与预期结果是什么?您的查询看起来不错,除了您可能想使用'> ='而不是'>' –
@fschmengler我的查询仍然返回两行,因为一行不存在。我想要的是如果三者中的一个不存在,那么我希望查询不转任何行。 – klaudia
根据您的示例数据,您的查询返回'null'又名'no row'。除了你可能想用'> ='代替'>' – RubahMalam