<?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