Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果为空,则从不同的表中检索MySQL_Mysql - Fatal编程技术网

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

如果为空,则从不同的表中检索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

我有一个查询,它从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_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
参数吗?错过了这个,我在fetch
mysqli_fetch_数组()上也得到了这个错误,它期望参数1是mysqli_结果,给定布尔值
您应该检查错误并打印
mysqli_error($con)
以查看错误消息。我在
left JOIN albums
子句中留下了别名
a