좋아, 여러 테이블이있는 MySQL 데이터베이스가 있습니다. 테이블 중 하나 (테이블 A)는 나에게 가장 관심있는 항목이 있습니다.데이터 수정 작업을 수행하여 원하는 데이터를 얻으십시오.
type
이라는 열과 entity_id
이라는 열이 있습니다. 기본 키는 registration_id
으로 현재 나와 관련성이 거의 없습니다.
궁극적으로 특정 type
의 모든 항목을 수집하려고하지만 고유 한 entity_id
을 갖고 싶습니다. 유일한 문제는 테이블 A의 entity_id
이 고유 키가 아니라는 것입니다. 에 복수 registration_ids
을 사용할 수 있습니다.
이제 entity_ids
의 유일한 목록 (즉, 해당 테이블의 기본 키)이있는 다른 테이블 (테이블 B)이 있지만 해당 테이블의 type
에 대한 정보는 없습니다.
그래서이 두 테이블에서 원하는 데이터를 얻는 가장 좋은 방법은 무엇입니까?
나는 테이블 A와 테이블 사이에서 첫 번째 테이블, 홀로 또는 아마도 일종의 조인 (나는 여전히 조인의 개념에 대해 처음이다)에서 사용할 수있는 일종의 (DISTINCT) B에서 테이블 B의 entity_id
과 표 A의 type
을 결합합니다.
지금 가장 효율적인 데이터베이스 작업은 무엇입니까? 그리고 내가 (결국은 지금 당장 시간이 없어서 아쉽게도) 데이터베이스 구조를 변경하여 효율성을 향상시켜야합니까?
누구에게도 추가 정보 나 그래픽이 필요한 경우 알려 주시기 바랍니다. 만약 내가 제대로 이해하고
이전에 GROUP BY SQL 함수를 사용한 적이 없습니다. 나는 그것에 대한 문서를 조사해야 할 것이다. 그것에 대한 쿼리는 두 번째 조건보다 빠르며 더 많은 레코드에서 그 사실을 상상할 수 있습니다. –
좋아요. 확실히 봐. SQL에서 그룹화 및 집계를 사용하기 시작할 수있는 좋은 기회 일 수 있습니다. FYI [대부분의 경우, DISTINCT 절은 GROUP BY의 특별한 경우로 간주 될 수 있습니다.예를 들어, 다음 두 쿼리는 동일합니다] (http://dev.mysql.com/doc/refman/5.0/en/distinct-optimization.html) – peterm