본문 바로가기
MySql

MySQL PHP MySQL-IN / ALL / ANY 하위 쿼리의 'id'열이 모호합니다.

by 베이스 공부 2021. 1. 11.
반응형

현재 다음 쿼리가 작동합니다.

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

하지만 다음과 같은 AND 문을 추가하고 싶습니다.

 AND `cpc`<='10' AND (`id` NOT IN (SELECT `site` FROM `surfed_site`)) 

그래서 다음과 같이 만들었습니다.

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

하지만 다음 메시지를받습니다.

IN / ALL / ANY 하위 쿼리의 'id'열이 모호합니다.

내 쿼리에 어떤 문제가 있습니까?

 

해결 방법

 

변경 시도

AND `cpc`<='10' AND (`id` NOT IN (SELECT `site` FROM `surfed_site`)) 

AND `cpc`<='10' AND (`a.id` NOT IN (SELECT `site` FROM `surfed_site`)) 

어떤 테이블에서 어떤 id 열을 참조할지 확실하지 않기 때문에 a.id 가 필요합니다.

 

참조 페이지 https://stackoverflow.com/questions/15042296

 

 

반응형

댓글