两个表之间的连接有一个结果?

时间:2011-12-12 20:54:01

标签: sql firebird2.5

解释主要标题有点复杂,但情况如下: - 我有2张桌子: 用户,偏好。

定义如下

用户:

ID | NAME | FK_NODE_PREFERENCES

偏好设置:

ID | FK_USERS | PREFERENCE_DESCRIPTION

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

结果如下:

USER | ALL_PREFERENCES
  • 我需要搜索首选项字符串的一部分,我需要在结果选择查询中只有1行,其中所有首选项都将用户作为文本与单个记录相关联?

1 个答案:

答案 0 :(得分: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

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