2009-12-18 2 views
32

나는 꽤 오랫동안이 작업을하려고 노력했지만 지금은 작동하지 않는 것 같습니다. 어쩌면 가능하지도 않습니다. 내가하고 싶은 일은 mysql join 같은 쿼리를 사용하는 것입니다. 이 예를 들어 나는 ...like를 사용하여 mysql join 쿼리?

SELECT * 
FROM Table1 
INNER JOIN Table2 ON Table1.col LIKE '%' + Table2.col + '%' 

를 찾았지만 그냥 전혀 작동하지 않는 것, 화려한 것입니다 제공 할 수있는 모든 도움을, 감사합니다!

답변

63

는 시도

SELECT * 
FROM Table1 
INNER JOIN Table2 ON Table1.col LIKE CONCAT('%', Table2.col, '%') 

MySQL은 경우에 당신이 포트에 응용 프로그램을 원하는, 그래서 마이클에 의해 언급 한 바와 같이, 당신은 ||가 연결 연산자로 사용되는 대체 버전이 필요합니다, 다른 데이터베이스에서 다른 문자열 연결을 수행 또 다른 대답. 이 연산자는 or을 의미하므로 MySQL에서는 작동하지 않습니다.

+2

+1과 자살, 우리 대화의 결과로, –

+0

ok는 이제 작동하지만 훨씬 더 많이 반환해야하는 경우에만 몇 줄을 반환합니다. 마치 table1의 첫 번째 행만 사용하는 것과 같습니다. ? – David

+0

아마도 당신이 원하는 것은 교차 결합입니까? select * from t1, t2 where t1.col ... –

1

대신 이것에 대해 어떻게 : 어쨌든 두 테이블에서 모든 것을 선택하고 있기 때문에

SELECT * FROM Table1, Table2 WHERE Table1.col LIKE '%'+Table2.col+'%'; 

이 아마 거기에 당신을 얻을 것이다.