如果为空,则从不同的表中检索MySQL
我有一个查询,它从isrc代码表中获取合同百分比。但是如果如果为空,则从不同的表中检索MySQL,mysql,Mysql,我有一个查询,它从isrc代码表中获取合同百分比。但是如果TRACK\u ISRC为空,我需要它从albums表中获取CONTRACT\u百分比。有没有办法用MySQL做到这一点。在albums表r.BUNDLE\u ID=a.BUNDLE\u ID中,它将是a.CONTRACT\u PERCENTAGE。这是我的问题 $add = mysqli_query($con," SELECT sum(r.DISTRIBUTED_AMOUNT / r.EXCHANGE_RATE * i.CONTRACT
TRACK\u ISRC
为空,我需要它从albums
表中获取CONTRACT\u百分比。有没有办法用MySQL做到这一点。在albums
表r.BUNDLE\u ID=a.BUNDLE\u ID
中,它将是a.CONTRACT\u PERCENTAGE
。这是我的问题
$add = mysqli_query($con,"
SELECT sum(r.DISTRIBUTED_AMOUNT / r.EXCHANGE_RATE * i.CONTRACT_PERCENTAGE / 100)
FROM royalties r, isrc_codes i
WHERE r.TRACK_ISRC = i.ISRC_CODE
AND r.BUNDLE_ARTIST = '".$row['artistname']."'
AND r.MONTH_ADDED = '".$current_month."'");
当isrc\u code
中没有匹配的行时,使用LEFT JOIN
获取NULL,并使用IFNULL
从albums
返回到列
$add = mysqli_query($con, "SELECT SUM(r.distributed_amount / r.exchange_rate * IFNULL(i.contract_percentage, a.contract_percentage) / 100)
FROM royalties r
LEFT JOIN isrc_codes i ON r.track_isrc = i.isrc_code
LEFT JOIN albums a ON r.bundle_id = a.bundle_id
WHERE r.bundle_artist = '{$row['artistname']}'
AND r.month_added = '$current_month'");
也许你可以尝试在isrc_代码和唱片表上构建一个视图,这样你就可以加入它了?(不确定这是否可能)我得到了这个错误mysqli_query()需要至少两个参数,在最后一行给出了一个,你难道看不到我不小心漏掉了$con
参数吗?错过了这个,我在fetchmysqli_fetch_数组()上也得到了这个错误,它期望参数1是mysqli_结果,给定布尔值
您应该检查错误并打印mysqli_error($con)
以查看错误消息。我在left JOIN albums
子句中留下了别名a
。