그래서 PHP에서 Codeigniter 프레임 워크 아래에서 (내가 '트랙'이라는 이름의) 모든 항목을 선택하려고하는 활성 레코드 쿼리가 있습니다. 조인의 특정 값 (트랙과 연관된 '태그'- 각 트랙에는 여러 개의 태그가 묶여있을 수 있음)이 충족됩니다. 내가 궁금해하는 점은 선택한 모든 태그가 연결된 트랙을 쿼리에서 찾을 수있는 방법이 있는지 여부입니다. 따라서 links.tag_id가 1 인 모든 트랙을 가져 오지 않고 links.tag_id가 2 인 모든 트랙을 가져 오는 대신 links.tag_id가 1뿐 아니라 2 인 모든 트랙을 반환합니다. 기본적으로 당신이 추가하는 더 많은 태그들로 선택된 결과들을 좁혀주는 감산 적 쿼리. 여기에 내가 지금까지 진행 한 작업은 다음과 같습니다 당신이 필요로하는 것은 당신이 찾아 귀하의 where 절에 각 태그 별칭을 사용하려는 각 태그에 대한 태그 테이블에 여러 번 참여하는 것입니다모든 값을 만족시키는 MySQL 쿼리 (감산 쿼리)
$this->db->select('tracks.id,
tracks.name AS name,
tracks.filename,
tracks.url_name,
tracks.file_path_high,
tracks.filesize,
tracks.categories,
tracks.duration,
tracks.folder,
links.tag_id,
SUM(links.weight) AS total_weight,
tag_data.tag_name');
$this->db->distinct();
$this->db->from('music AS tracks');
$this->db->where_in('links.tag_id', array('1', '2');
$this->db->join('linked_tags AS links', 'links.track_id = tracks.id', 'inner');
$this->db->join('tags AS tag_data', 'tag_data.id = links.tag_id', 'inner');
는 왼쪽 외부 찾고 계십니까 조인이 같은 기술을 사용하는 방법에 대한 자세한 예를 들어
, 후속 게시물을 볼 수? 내가 당신이 데이터베이스에 대해 무엇을 요구하고 있는지 완전히 이해하고 있는지 확신 할 수 없습니다. 당신은 명확히 할 수 있습니까? – Kevin
죄송합니다. 여전히 내 머리를 감싸려고합니다. 나는 태그와 트랙 ID의 링크가있는 '링크'테이블을 가지고있다. 각 트랙에는 여러 개의 태그가 링크되어 있습니다. 1, 2 및 5가 아닌 해당 트랙과 연결된 태그 (링크 테이블의 별도 행)를 가진 모든 트랙을 가져 오려고한다고 가정 해 봅시다. – jpea