2009-12-05 2 views
1

다른 테이블의 필드에 나타나는 테이블의 이름 목록을 쿼리하려고합니다.다른 테이블의 필드에 나타나는 테이블의 이름 목록 쿼리

는 예 :

table1.title> 타이거 우즈 요령, 타이거 우즈 충돌, 브래드 피트가 큰 마돈나가 채택, 브래드 피트는 영화를

table2.names> 타이거 우즈, 브래드 피트, 마돈나를 만든다

그래서 두 테이블과 값입니다. 나는 table2.names의 이름이 table1.title에서 가장 자주 나타나는 수를 계산하는 쿼리를 작성하고 싶습니다.

누군가가 내부 조인을 사용하여 제안했지만 작동하지 못했습니다 ... 도움을 주시면 감사하겠습니다 !! 감사.

+0

@Mike, SQL 구현의 특정 기능을 사용할 수 있도록 플랫폼을 지정할 수 있습니까? 아마 당신은 ANSI SQL을 엄격하게 선호합니까? –

+0

MySQL. 나는 초급자 야. 니가 찾고있는거야? – Mike

+0

이 결과를 생성하기 위해 SQL 쿼리를 작성하려고합니다. – Mike

답변

2

사용 :

이것은 당신이 (table2.names에서 정확한 값이 table1.title 열 어딘가에/어디서나 문자열 내에서가 아닌 부분 일치를 포함하고 예) 정확한 이름이 일치하는보고 싶지 가정
SELECT a.names, 
     COUNT(b.titles) AS num 
    FROM TABLE_2 a 
    JOIN TABLE_1 b ON INSTR(b.title, a.names) > 0 
GROUP BY a.names 
ORDER BY num DESC 

INSTR()에 대한 설명서를 참조하십시오. 0보다 큰 값을 확인하면 제목에 이름이 있음을 나타내야합니다. 그렇지 않으면 0이됩니다.

AS num은 열 별칭이므로 ORDER BY에서 참조하여 ASCending 또는 DESCending 순서로 정렬 할 수 있습니다.

+0

WOW. 이것은 효과가있다! 정말 고마워! – Mike

1

조인을 사용하고 싶지만 조인 조건은 패턴 일치가되며 동등하지는 않습니다.

select t2.names, count(*) 
from  table2 t2 
join  table1 t1 
on  t1.title like('%' + t2.names + '%') 
group by t2.names 
order by count(*) desc; 
+0

이것은 큰 도움이되었습니다. 이 결과를 새 테이블에 삽입하려면 어떻게해야합니까? 결과별로 그룹을 삽입하는 방법을 잘 모르겠습니다. – Mike

+0

선택 항목 위에 표준 삽입 절을 추가하기 만하면됩니다. Insert 절은 somehing과 같이 보일 것입니다 : insert (colA, colB, ...) – chadhoc

관련 문제