2014-01-27 25 views
0

我有這個查詢從isrc_codes表獲得CONTRACT_PERCENTAGE。但如果TRACK_ISRC爲空,我需要它從albums表中獲得CONTRACT_PERCENTAGE。有沒有辦法與MySQL做到這一點。在albumsr.BUNDLE_ID = a.BUNDLE_ID,它將是a.CONTRACT_PERCENTAGE。這裏是我的查詢MySQL從不同表中檢索如果爲空

$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

也許你可以試着在isrc_codes和專輯表上建立一個視圖,這樣你就可以加入它了嗎? (不知道實際上如果這是可能的) – Leo

回答

2

使用LEFT JOIN得到空當沒有匹配的行isrc_codes,並IFNULLalbums回落到列。

$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'"); 
+0

我得到這個錯誤'mysqli_query()期望至少2參數,在最後一行給出' –

+0

你難道沒有看到我不小心忽略了'$ con'參數? – Barmar

+0

錯過了,我也得到這個錯誤提取'mysqli_fetch_array()期望參數1爲mysqli_result,布爾給定' –