我不理解我正在做的视频学习给我的总结。关于为什么我将表与自身连接的解释尚不清楚。我在这方面是全新的,并且在这个概念上一直做得很好。谢谢您的帮助。
我想我会选择更多的列。
这不是一件常见的事情。如果你刚刚开始,我不会担心。
但是根据数据库的排列方式,它可能非常有用。可以使用的一种数据设计模式是将相关数据存储在行而不是列中,如下所示:
Table person_attributes
-----------------------
id person_id attr_key attr_value
==== ========= ======== ==========
201 51 Hair Brown
202 51 Eyes Blue
203 51 Height 175cm
204 52 Hair Red
205 52 Eyes Hazel
206 52 Height 163cm
要以单行形式检索人员 51 的属性值,您可以将表连接到其自身。像这样:
SELECT pa1.attr_value as hair
,pa2.attr_value as eyes
,pa3.attr_value as height
FROM person_attributes pa1
JOIN person_attributes pa2 on pa1.person_id=pa2.person_id
JOIN person_attributes pa3 on pa1.person_id=pa3.person_id
WHERE pa1.attr_key='Hair'
AND pa2.attr_key='Eyes'
AND pa3.attr_key='Height'
AND pa1.person_id=51