많은 옵션이있는 큰 필터가 있고 SQL 코드가없는 SQL 자동 태그에 대한 쿼리를 생성하려고합니다.SQL 중복 행
GET :
searchvalue=abc
&title=abc
&description=abc
&category=1
&subcategory=2
&zip=7
&city=ke
&country=DE
SQL :이 옵션으로
SELECT activity.* FROM activity,subcategory,city,country
WHERE activity.title LIKE '%abc%' OR activity.description LIKE '%abc%'
AND subcategory.SubID = 2
AND city.zip LIKE '%7%'
AND city.City LIKE '%ke%'
AND country.CShort= 'DE'
, 내 데이터베이스에 1 개 행을 가지고있다. 대답은 여러 번 여러 번이 행입니다.
테이블이 WHERE 절에 사용되지 않을 때 sql이 행을 복제한다는 것을 알고 있습니다.하지만 왜 지금 그 작업을 수행하고 어떻게 해결할 수 있습니까?
편집 : 나는 ER을 가지고 있지만 데이터베이스가 독일어 (학교 프로젝트)에, 어쩌면 당신이 이해하는 데 도움이 :
감사합니다!
당신은 어떤'JOIN' 조건없이 세 가지 다른 테이블에'JOIN'을하고 있습니다. 이것은 당신에게 거대한 수의 행을 설명 할 3 개의 테이블의 데카르트 곱을 제공합니다. [이 리소스] (http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/)를 확인하십시오. – Kryten
나는 반드시 JOIN을 사용해야합니까? – user1878413
@ user1878413,'JOIN'을 사용하거나 WHERE 절에서 테이블을 바인드하십시오; 하지만 너는 *해야만한다. –