2016-12-20 3 views
0

간단한 쿼리를 사용할 때 Yii-Sphinx 확장을 사용하려고했지만 왼쪽 결합을 사용하려고하면 작동하지 않습니다. 아래 오류를 반환합니다. 많은 쿼리를 테스트했지만 작동하지 않습니다. 내가 YII - 스핑크스 확장Yii2 스핑크스 왼쪽 연결이 작동하지 않습니다.

SQLSTATE[42000]: Syntax error or access violation: 1064 sphinxql: syntax 
error, unexpected IDENT, expecting $end near 'LEFT JOIN specs ON specs.id = 
listing.specs_id' 
The SQL being executed was: SELECT specs.id, listing.title,listing.specs_id,  
listing.reg_no, listing.price, listing.status, listing.featured FROM listing 
LEFT JOIN specs ON specs.id = listing.specs_id 
Error Info: Array 
(
    [0] => 42000 
    [1] => 1064 
    [2] => sphinxql: syntax error, unexpected IDENT, expecting $end near 
    'LEFT JOIN specs ON specs.id = listing.specs_id' 
) 

를 사용하고 여기에 내 쿼리

SELECT specs.id, listing.title,listing.specs_id, listing.reg_no, listing.price, listing.status, listing.featured FROM listing LEFT JOIN specs ON specs.id = listing.specs_id 
+0

실제로이 쿼리에 \를 추가합니까? – Bizley

+0

지금 내 질문을 확인하십시오. 나는 틀린 질문을 추가했다. @Bizley –

+0

당신은 어떤 버전의 스핑크스 (yii2-sphinx가 아닙니까?)를 가지고 계셨습니까? – Bizley

답변

1

이 문제가 해결되었습니다. 여기에 그런 문제에 갇혀있는 사람을위한 세부 사항이 있습니다. yii2 - 스핑크스 확장 가능 스핑크스 쿼리 빌더 내 솔루션은 다음과 같은 :

, 쿼리 내가 잘못하고 있었는지 sql_query

작성할 수 있습니다 가입 스핑크스 설정 파일에서 인덱스 '목록'

$q = new Query(); 
$q->from('listing'); 
$rows = $q->all(); 

내가 쿼리 빌더가 아닌 간단한 쿼리를 사용하고 있었고 문제가 해결되었습니다. 예를 들어, 아래 코드에서는 조인 쿼리가 작동하지 않습니다.

$sql = 'Select * FROM listing'; 
$rows = Yii::$app->sphinx->createCommand($sql)->queryAll(); 

단순 쿼리가 실행되지만 조인을 포함한 쿼리는 오류를 반환합니다.

0

SphinxSearch 자체의 가입 '지원하지 않는 것입니다. 그러한 쿼리를 실행할 수 없습니다.

yii2-sphinx와 같은 문제가 아니며, Sphinx Works의 작동 방식. 작성 SphinxQL 직접 쿼리하는 경우

, 여기에 SELECT 구문을 읽을 수 있습니다 http://sphinxsearch.com/docs/current.html#sphinxql-select

SELECT 문이 버전 0.9.9-RC2에서 소개되었다. 구문은 일반적인 SQL을 기반으로하지만 여러 개의 Sphinx 특정 확장을 추가하고 몇 가지 생략 (예 : JOIN에 대한 지원 누락)이 있습니다. http://www.yiiframework.com/doc-2.0/yii-sphinx-querybuilder.html 그것은 단지 이벤트 '방법'actully 스핑크스가 지원 QueryBuilder 일반적으로 사용

.

+0

Query Builder $ q = new Query();를 사용하여 작업하고 있습니다. –