2017-11-23 15 views
0

私はmysqlとsphinxを初めて使用しています。 sphinxsearchの2つのテーブルにUNION ALLを適用したいと思います。以下は私のSQLクエリsql_query:SQL構文にエラーがあります。あなたのMySQLサーバーのバージョンに対応するマニュアルをチェックしてください。

sql_query    = \ 
       (SELECT users.id AS uid, users.fname, users.lname, users.email \ 
       FROM users) \ 
       UNION ALL \ 
       (SELECT documents.id AS diid, documents.description \ 
       FROM documents); 

ですが、私はindexコマンドのために行くとき、そのは私はUNIONで2つの「サブクエリは」同じスキーマを持つべきだと思う

ERROR: index 'my_search': sql_query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM users) UNION ALL SELECT documents.id AS dii' at line 1 (DSN=mysql://root:***@localhost:3306/testsphinx).

+0

なぜ "" \ "がクエリに含まれていますか? –

+1

スフィンクスでの複数行のクエリの標準的な練習です – VVB

答えて

0

をエラーを示しています。つまり、データベースは列で1つの結果セットを生成します。その行は別のテーブルから来ます。 multiuple源

source users { 
... 
sql_query    = \ 
       SELECT users.id AS uid, users.fname, users.lname, users.email \ 
       FROM users 
... 
} 

source documents { 
... 
sql_query    = \ 
       SELECT documents.id AS diid, documents.description \ 
       FROM documents 
... 
} 

index index1 { 
    source users 
    source documents 
    path = /var/sphinx/index1 
.... 
} 

を使用する1つのインデックスでは、おそらく最高しかし、同様にそれらあまりにも別々のインデックスすることができます -

の場合は、スフィンクスのインデックス二つのテーブルにしたいです。これにより、MOSTの柔軟性が得られ、必要に応じてそれらを照会できます。

sphinx> SELECT * from users,documents WHERE MATCH('toad') 

また、それらも個別にクエリできます。

+0

遅く返事して申し訳ありませんが、テストして返信します。ありがとう – VVB

関連する問題

 関連する問題