2012-12-05 4 views
-1

나는 검색을 위해 PHP에서 SQL 쿼리를 사용하고 있습니다 :PHP로 검색하면 같은 결과가 여러 번 표시됩니까?

SELECT * 
FROM vendor, branches 
WHERE branches.vendor_id = vendor.vendor_id 
AND vendor.name LIKE '%".$query."%' 
OR vendor.description LIKE '%".$query."%' 
OR branches.city LIKE '%".$query."%' 

그것은 결과를 여러 번 표시합니다. 발견 된 경우 결과를 표시하려면 PHP를 한 번만하고 여러 번 나타내지 말아야합니다.

+0

모든 결과가 동일합니까? 아니면 쿼리가 여러 행을 반환합니까? –

+0

쿼리가 여러 개의 다른 행을 반환합니다. –

답변

1

시도

 

SELECT * FROM vendor INNER JOIN branches ON branches.vendor_id = vender.vendor_id 
WHERE (
    vendor.name LIKE '%".$query."%' 
    OR vendor.description LIKE '%".$query."%' 
    OR branches.city LIKE '%".$query."%' 
) 
 
1

별명을 선택하거나에 의해 그룹을 사용하십시오. 다음 요소를 사용하여 별개 또는 그룹을 사용하는 경우에도 아래 쿼리를 사용할 수 있습니다. SELECT * 대신 ID를 선택하십시오.

SELECT * FROM vendor as VTable 
WHERE vendor.name LIKE '%".$query."%' 
AND VTable.vendor_id = (SELECT TOP 1 FROM branches as BTable WHERE BTable.vendor_id = VTable.vendor OR BTable.city LIKE '%".$query."%') 
OR vendor.description LIKE '%".$query."%' 
+0

나는 또한 이것을 시도하지만 위에 언급 한 것과 같은 결과를 표시합니다. –

0

더 기술적으로,
1 column_1에 의해 TABLE_NAME 그룹에서 테이블 _
2. SELECT * FROM DISTINCT column_1 (column_2 등) SELECT (column_2)

관련 문제