mysql - 如何在 sphinx 中执行 SQL Join 等效功能?

标签 mysql join full-text-search sphinx

谁能告诉我如何在sphinx search中实现SQL join的功能? 我想索引 table1 中的几列和 table2 中的几列。

表在 MySQL 中。

最佳答案

1° 作为 Barryhunter 的回答

sql_query = SELECT t1.id,t1...., t2....  FROM table1 AS t1 INNER JOIN table2 AS t2 ON ....

如果是一对多则为2°

sql_query = SELECT t1.id,t1...., group_concat(t2.foo) ASt 2_foo, .  FROM table1 AS t1 INNER JOIN table2 AS t2 ON .... GROUP BY t1.id

group_concat 有长度限制,但 sphinx 很棒

sql_query = SELECT t1.id,t1....,.  FROM table1 AS t1;

sql_joined_field =  t2_foo from query;\  
SELECT t2.rel_t1_id  , t2.foo\ 
FROM table2` AS t2\
ORDER by t2.rel_t1_id ASC

由于我英文不好,看这篇大概更清楚 http://sphinxsearch.com/docs/current/conf-sql-joined-field.html

sql_joined_field = t2_foo 将添加一个名为 t2_foo 的“可搜索”字段。在此字段中,您检索 t2.foo 内容(类似于组 concat,但由空格分隔)

第一列必须是与你的sql_query中的t1.id匹配的id

按 ID ASC 排序是强制性的

在同样的想法下,您可以将 mva 用于属性中的多个值 http://sphinxsearch.com/docs/current/conf-sql-attr-multi.html

sql_attr_multi = uint tag from query; \
SELECT id, tag FROM tags

关于mysql - 如何在 sphinx 中执行 SQL Join 等效功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32837292/

相关文章:

sql - MySQL:将列分成两列

php - CakePHP - 登录功能问题

mysql - rails 。 MySQL。变量 'sql_mode'不能设置为 'STRICT_ALL_TABLES'的值

sql - join 语句中的别名问题

mysql - 一次连接多个表 :

mysql 子查询作为 if 条件(仅在需要时)

MySQL全文搜索结果相关性

mysql - Docker Wordpress 连接到本地主机上的数据库服务器

mysql - 在服务器或客户端上创建 AngularJS View 模型?

php - 如何使用变量中的部分值来显示使用 stmt 准备的 mysql 中的查询