在PHP中使用SphinxAPI
我有2张表,通过第三张表有多对多关系。玩家可以参加多个活动。
Gamers
- id (UINT)
- username (STRING)
- category (UINT)
- lat (FLOAT)
- lng (FLOAT)
Events
- id (UINT)
- name (STRING)
gamers_events
- gamer_id (UINT)
- event_id (UINT)
我在Sphinx上看到过MVA,但我不确定这是怎么回事。
这就是我在游戏玩家指数中的含义
sql_query = SELECT g.id\
, g.username\
, g.category\
FROM gamer g\
/* some LEFT JOIN with other tables */
GROUP BY g.id
sql_attr_multi = uint event from query; SELECT id, name FROM event
我不确定如何将事件表加入游戏玩家表。
我想通过搜索游戏玩家时的事件ID来设置SetFilter。不是通过事件的名称,只是id。
答案 0 :(得分:1)
要么......
sql_query = SELECT g.id, \
GROUP_CONCAT(ge.event_id) AS event, \
...
FROM gamer g\
LEFT JOIN gamers_events ge ON (ge.gamer_id = g.id) \
/* some LEFT JOIN with other tables */
GROUP BY g.id \
ORDER BY NULL
sql_attr_multi = uint event from field;
(狮身人面像可从柱中提取)
OR(sql_query不变)......
sql_attr_multi = uint event from query; SELECT gamer_id, event_id FROM gamers_events ORDER BY gamer_id
在任何一种情况下你都不需要事件表,只需要gamers_events表。