PHP MySQL - IN/ALL/ANY子查询中的列'id'是不明确的

Cus*_*Net 0 php mysql

我目前有以下查询工作:

$sql = $db->Query("SELECT a.id FROM surf a LEFT JOIN users b ON b.id = a.user LEFT JOIN surfed c ON c.user = '".$data['id']."' AND c.site = a.id WHERE a.active = '0' AND (b.coins >= a.cpc AND a.cpc >= '2') AND (c.site IS NULL AND a.user !='".$data['id']."')".$dbt_value." ORDER BY a.cpc DESC LIMIT 1");
Run Code Online (Sandbox Code Playgroud)

但我想在其中添加以下AND语句:

 AND `cpc`<='10' AND (`id` NOT IN (SELECT `site` FROM `surfed_site`)) 
Run Code Online (Sandbox Code Playgroud)

所以我看起来像:

$sql = $db->Query("SELECT a.id FROM surf a LEFT JOIN users b ON b.id = a.user LEFT JOIN surfed c ON c.user = '".$data['id']."' AND c.site = a.id WHERE a.active = '0' AND (b.coins >= a.cpc AND a.cpc >= '2') AND `cpc`<='10' AND (`id` NOT IN (SELECT `site` FROM `surfed_site`)) AND (c.site IS NULL AND a.user !='".$data['id']."')".$dbt_value." ORDER BY a.cpc DESC LIMIT 1");
Run Code Online (Sandbox Code Playgroud)

但后来我收到这条消息:

IN/ALL/ANY子查询中的列'id'是不明确的

我的查询有什么问题?

Sea*_*nWM 6

尝试改变

AND `cpc`<='10' AND (`id` NOT IN (SELECT `site` FROM `surfed_site`)) 
Run Code Online (Sandbox Code Playgroud)

AND `cpc`<='10' AND (`a.id` NOT IN (SELECT `site` FROM `surfed_site`)) 
Run Code Online (Sandbox Code Playgroud)

您需要,a.id因为它不确定id引用哪个表中的哪一列.