我正在尝试将两个查询合并为一个。
第一个查询:
select SaleID
from Sales
where InvoiceStatusID = 'OR';
第二个查询:
select ItemSaleLines.Quantity, Items.CustomField2
from ItemSaleLines
inner join Items on ItemSaleLines.ItemID = Items.ItemID
inner join Sales on ItemSaleLines.SaleID = Sales.SaleID
where (ItemSaleLines.SaleID = {keyProductID}
and (ItemSaleLines.Quantity > 0)
and (Items.ItemNumber not like '%tnt%')
and (Items.ItemNumber not like '%contact%')
and (Items.ItemNumber <> '')
and (Items.ItemNumber <> '-' ) )
其中 keyProductID
是我从查询 1 中获取的 SaleID
。
我通过首先存储查询 1 中的 SaleID
并传递给查询 2 来实现此目的,但效率不高且调用次数过多。
更好的方法是什么?
最佳答案
你可以尝试这样的事情,
select ItemSaleLines.Quantity,Items.CustomField2 from ItemSaleLines
inner join Items on ItemSaleLines.ItemID=Items.ItemID
inner join Sales on ItemSaleLines.SaleID=Sales.SaleID
where (ItemSaleLines.SaleID=(select SaleID from Sales where InvoiceStatusID='OR')
AND (ItemSaleLines.Quantity > 0) AND (Items.ItemNumber not
like '%tnt%') AND (Items.ItemNumber not like '%contact%') AND (Items.ItemNumber <> '') AND (Items.ItemNumber <> '-' ) )
关于mysql - 将 SQL 查询合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47646085/