<?php
$inventory_in = $db->get_one("SELECT COALESCE(SUM(Qty), 0)
FROM inventory Where id=12 AND inv_type = 'in' LIMIT 1");
$inventory_out = $db->get_one("SELECT COALESCE(SUM(Qty), 0)
FROM inventory Where id=12 AND inv_type = 'out' LIMIT 1");
$inventory = $inventory_in - $inventory_out;
?>
可能将两个查询合并为一个?根据mysql中不同条件选择两列
谢谢。
什么是你为希望将它们合并动机是什么?通常,一个复杂的查询比多个简单的查询慢。 – drewish
@drewish我的经历完全相反。在这个例子中,两次执行聚合(简单)比同时执行两次(复杂)要昂贵。这个概念的复杂性与性能直接相关,它也很容易得到'SELECT N + 1'问题。在任何情况下,当它更好地了解你的预算是什么,并衡量你是否达到了预算。关于什么会更好的假设是一个坏主意 –
@ConradFrix是的,我想我更一般地说,在汇总的情况下,你可能是正确的,单次传球是最好的,但像你说的测试它假设。这就是为什么我试图弄清楚动机是什么。 – drewish