如果为空,MySQL从不同的表中检索

时间:2014-01-27 04:57:24

标签: mysql

我的查询是从isrc_codes表中获取CONTRACT_PERCENTAGE的。但如果TRACK_ISRC为空,我需要它从CONTRACT_PERCENTAGE表中获取albums。有没有办法用MySQL做到这一点。在albumsr.BUNDLE_ID = a.BUNDLE_ID上,它将是a.CONTRACT_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."'");

1 个答案:

答案 0 :(得分:2)

LEFT JOIN中没有匹配的行时,使用isrc_codes获取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'"); 列。

{{1}}