gin Posted January 12, 2012 Share Posted January 12, 2012 Observe the query below, not inserted as code so you can see the colours. The two lines in red are identical. ======================= SELECT IF ( qtype<>2, package, package*( SELECT usd_conv FROM quotes_default def WHERE def.date <= DATE(modified) ORDER BY def.date DESC LIMIT 1 ) ) as ptotal, IF ( qtype<>2, gpackage, gpackage*( SELECT usd_conv FROM quotes_default def WHERE def.date <= DATE(modified) ORDER BY def.date DESC LIMIT 1 ) ) as gptotal FROM jobs j ======================= Basically, I'm wondering if there's a way simplify this. Something like below, which I know doesn't work, but you get the idea? To put the results of the red sub-query into a variable, then use the variable elsewhere. ======================= SELECT (SELECT usd_conv FROM quotes_default def WHERE def.date <= DATE(modified) ORDER BY def.date DESC LIMIT 1) AS rate, IF ( qtype<>2, package, package*rate ) as ptotal, IF ( qtype<>2, gpackage, gpackage*rate ) as gptotal FROM jobs j ======================= Quote Link to comment https://forums.phpfreaks.com/topic/254855-simplifying-selected-sub-queries/ Share on other sites More sharing options...
fenway Posted January 12, 2012 Share Posted January 12, 2012 Technically, there's a way, but it's buggy, so don't. If you don't want it repeat, do the math afterwards, not in the SQL statement. Quote Link to comment https://forums.phpfreaks.com/topic/254855-simplifying-selected-sub-queries/#findComment-1307021 Share on other sites More sharing options...
gin Posted January 13, 2012 Author Share Posted January 13, 2012 Thank you, good to know! One more question. Which would be less strain on the server: my first query above, or doing the calculations after? Quote Link to comment https://forums.phpfreaks.com/topic/254855-simplifying-selected-sub-queries/#findComment-1307107 Share on other sites More sharing options...
fenway Posted January 16, 2012 Share Posted January 16, 2012 That depends on the optimizer for your version of mysql. Quote Link to comment https://forums.phpfreaks.com/topic/254855-simplifying-selected-sub-queries/#findComment-1308212 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.