2016-12-20 8 views
0

単純なクエリを使用したときにYii-Sphinx拡張機能とその機能を使用しようとしましたが、左結合を使用しようとすると機能しません。以下のエラーを返します。私は多くのクエリをテストしましたが、動作しません。私はYiiの-スフィンクス延長Yii2 Sphinx左結合が機能しない

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自体がののJOIN」をサポートしていませんです。このようなクエリは実行できません。

yii2-sphinxと同じように、Sphinx Worksの問題はありません。

SphinxQLが直接照会する書き込みをした場合、ここでSELECT構文を読むことができます: http://sphinxsearch.com/docs/current.html#sphinxql-select

をSELECT文は、バージョン0.9.9-RC2で導入されました。構文は通常のSQLに基づいていますが、いくつかのSphinx固有の拡張が追加されています(いくつかの省略形があります(現在はJOINのサポートがないなど)。 actullyスフィンクスでサポートされている、それだけ申し出 'メソッド' として一般的に使用さQueryBuilder http://www.yiiframework.com/doc-2.0/yii-sphinx-querybuilder.html

+0

私はQuery Builder $ q = new Query()を使って作業しています。 –

関連する問題