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