我在MySQL中编写了一个连接查询,该查询运行良好并显示结果。
我正在尝试编写一个MySQL查询,显示2个额外的列和一些计算
If isPercent=1 then
New Column1=price*currentPercent/100
New Column2=LineItemQuantity*price
我尝试在PHP中编写此查询,但由于有100,000个记录,因此超时。
这是MySQL查询,结果如下所示
Select
wl.LineItems_LineItemID,
wl.LineItemQuantity,
pj.IsPercent,
pj.CurrentPercent,
pj.CurrentRate,
cb.Price
from
WorkOrderLineItems wl,
PayScaleLoaclJObCodes pj,
ClientBillingRates cb
where
wl.LineItems_LineItemID=pj.JobCodeID
AND wl.LineItems_LineItemID=cb.ClientBillingRates_ID
AND pj.PayScalesLocal_ID='33'
答案 0 :(得分:1)
我会用这种方式编写查询:
$(this).text()
与上面的评论一样,我鼓励您使用SELECT
wl.LineItems_LineItemID,
wl.LineItemQuantity,
pj.IsPercent,
pj.CurrentPercent,
pj.CurrentRate,
cb.Price,
IF(pj.IsPercent=1, cb.Price*pj.CurrentPercent/100, NULL) AS `New Column 1`,
IF(pj.IsPercent=1, wl.LineItemQuantity*cb.Price, NULL) AS `New Column 2`
FROM
WorkOrderLineItems wl
JOIN PayScaleLoaclJObCodes pj ON wl.LineItems_LineItemID = pj.JobCodeID
JOIN ClientBillingRates cb ON wl.LineItems_LineItemID = cb.ClientBillingRates_ID
WHERE pj.PayScalesLocal_ID = '33'
语法,而不是依赖于老式的逗号样式连接。
至于查询超时,我猜你没有正确的索引来支持这个查询。如果您需要有关查询优化的帮助,则应为查询中的每个表运行JOIN
,并将输出发布到您的问题中。