1

解释到主标题有点复杂,但情况如下: - 我有 2 个表:用户,首选项。

定义如下

用户:

ID | NAME | FK_NODE_PREFERENCES

优先 :

ID | FK_USERS | PREFERENCE_DESCRIPTION

这个想法是为每个用户提供很多偏好......

结果应如下所示:

USER | ALL_PREFERENCES
  • 我需要按首选项字符串的一部分进行搜索,并且我只需要在结果选择查询中输入 1 行,它会将与用户相关的所有首选项作为文本放入单个记录中?
4

1 回答 1

1

我不熟悉 Firebird,但它似乎有一个 LIST() 函数,它应该等同于 MySQL 中的 GROUP_CONCAT() 函数。(http://www.firebirdsql.org/refdocs/langrefupd21-aggrfunc-list.html

所以,基本上查询应该是这样的:

SELECT Users.name, LIST(Preferences.preference_description, ' ') AS ALL_PREFERENCES FROM Users JOIN NodePreferences ON Users.fk_node_preferences = Preferences.id WHERE Preferences.preference_description LIKE '%abc%' GROUP BY Users.name

所以......不确定这是否真的有效,但方向应该是正确的......希望有帮助!

于 2011-12-12T21:07:03.270 回答