如何检索存储在多行中的"动态"属性作为普通记录?

Rai*_*616 5 mysql sql relational foreign-keys

我有一个基于关系MySQL数据库的系统,允许人们存储"潜在客户"的详细信息.此外,人们可以创建自己的列来存储数据,然后在添加新帐户时可以在其下添加数据.表结构如下所示:

LEADS - id,email,user_id

ATTRIBUTES - id,attr_name,user_id

ATTR_VALUES - lead_id,attr_id,value,user_id

显然,在这些表中,"user_id"指的是"Users"表,其中只包含可以登录系统的人员.

我正在编写一个函数来输出引导细节,目前我只是将基本的引导细节作为查询,然后拉出与该引导相关联的每个属性值(连接到属性表以获取名称)然后加入数组用PHP.这有点乱,我想知道是否有办法在一个SQL查询中执行此操作.我已经阅读了一些关于"数据透视表"的内容,但我很难理解它是如何工作的.

任何帮助将不胜感激.谢谢!

Ari*_*ion 0

我想看看这个链接。这解释了枢轴的基本原理:

“数据透视表”或“交叉表报告” SQL 特征函数:不使用“if”、“case”或“GROUP_CONCAT”。是的,这是有用的......“if”语句在组合使用时有时会导致问题。简单的秘密,也是它们在几乎所有数据库中工作的原因,是以下函数:对于 x < 0、x = 0、x > 0 的值,sign (x) 分别返回 -1,0, +1 abs( sign( x) ) 如果 x = 0,则返回 0,否则,如果 x > 0 或 x < 0,则返回 1 1-abs( sign( x) ) 上述的补码,因为仅当 x = 0 时才返回 1

它还解释了一种更简单的旋转考试的方法。也许这可以揭示一些情况?