我有2个表,一个是field_id,另一个是field_value。 我想以行,名字,姓氏,年龄,爱好,关于我的方式显示个人资料内容。
field_id
-------------------------------------------------
id | name |
--------|--------------------------|-----------------
1 First name
2 Last name
3 Age
4 Hobby
5 About me
----------------------------------------------------------
field_value - 在上表中提到id pmkey自动增量和field_id
------------------------------------------------------------------
id | user_id | field_id | field_value |
---|----------|----------|--------------------------------------|----
1 | 1 | 1 |John
2 | 1 | 1 |smith
3 | 1 | 2 |Capili
4 | 1 | 3 |32
5 | 1 | 4 |Reading Book
6 | 1 | 4 |Swimming
7 | 1 | 4 |Boating
8 | 1 | 5 |I
9 | 1 | 5 |am
10 | 1 | 5 |very
11 | 1 | 5 |simple
11 | 1 | 5 |person
-----------------------------------------------------------
我希望像这样
以行方式显示个人资料name -:john smith capili
Age-:32
Hobby-:Reading Book,Swimming,Boating
About me-:I am very simple person.
请帮帮我。并建议我使用或不使用这种类型的数据库。
答案 0 :(得分:3)
至少你能得到的是如下。
John smith
Capili
32
Boating Swimming Reading Book
I am very simple person
要获得以上输出,请使用以下查询。
SELECT GROUP_CONCAT(field_value SEPARATOR ' ') as Profile FROM myTable
WHERE user_id = 1
GROUP BY field_id
表 personal_details ,包含以下字段。
+++++++++++++++++++++++
+ field + type +
+++++++++++++++++++++++
+ personID + INT +
+ firstName + varchar +
+ middleName+ varchar +
+ lastName + varchar +
+ age + INT +
+ aboutMe + varchar +
+++++++++++++++++++++++
hobbies_person 表
+++++++++++++++++++++++
+ field + type +
+++++++++++++++++++++++
+ personID + INT +
+ hobbID + INT +
+++++++++++++++++++++++
爱好表
+++++++++++++++++++++++
+ field + type +
+++++++++++++++++++++++
+ hobbID + INT +
+ hobbName + varchar +
+++++++++++++++++++++++
我添加了新表作为爱好,因为如果我们没有爱好表,那么对于每个人我们都要写爱好名称(额外的字段也是&增加在尺寸上也是如此)。在 hobbies_person 中,我们已经定义了爱好并且有人写了新的爱好,然后它会首先添加到爱好表中,然后添加到 hobbies_person 表中。