[英]multiplying two columns, different tables… one column null
In this join query, i am multiplying two columns from different tables, premium
& points
. 在此联接查询中,我要乘以来自不同表的两列,
premium
和points
。 What i want to happen is if there are no columns joined in the premium
table then the multiplier will be 1. 我想发生的事情是,如果
premium
表中没有连接的列,则乘数将为1。
here is the query 这是查询
SELECT parent.*,(premiumtable.bid * pointstable.points) as total FROM strings parent
LEFT JOIN premium premiumtable on parent.sid=premiumtable.sid AND premiumtable.paid='1'
LEFT JOIN points pointstable on parent.sid=pointstable.`string-id`
WHERE parent.category=:category AND (parent.submittype='0' OR parent.submittype='3') GROUP BY parent.id ORDER BY total LIMIT 5
So if nothing is joined on the premiumtable
instead of premiumtable.bid * pointstable.points
it would be 1 * pointstable.points
. 因此,如果在
premiumtable
上没有加入任何东西,而不是premiumtable.bid * pointstable.points
,它将是1 * pointstable.points
。 The premiumtable.bid
acts as a multiplier, if it isn't present, i'd want total
to equal pointstable.points
premiumtable.bid
充当乘数,如果不存在,我希望total
等于pointstable.points
Use a case
statement: 使用
case
声明:
SELECT parent.*,
case when premiumtable.bid is null
then pointstable.points
else premiumtable.bid * pointstable.points
end as total
FROM strings parent
LEFT JOIN premium premiumtable on parent.sid=premiumtable.sid AND premiumtable.paid='1'
LEFT JOIN points pointstable on parent.sid=pointstable.`string-id`
WHERE parent.category=:category
AND (parent.submittype='0' OR parent.submittype='3')
GROUP BY parent.id
ORDER BY total
LIMIT 5
Try using COALESCE
: 尝试使用
COALESCE
:
SELECT parent.*,
(COALESCE(premiumtable.bid,1) * pointstable.points) as total
FROM strings parent
LEFT JOIN premium premiumtable
on parent.sid=premiumtable.sid AND premiumtable.paid='1'
LEFT JOIN points pointstable
on parent.sid=pointstable.`string-id`
WHERE parent.category=:category
AND (parent.submittype='0' OR parent.submittype='3')
GROUP BY parent.id
ORDER BY total LIMIT 5
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.