具有层次结构和连接的数据库

时间:2014-06-04 20:29:27

标签: php mysql

我有一个包含三个表的数据库。每个表都是另一个表的高度。表格是Dog,Gender,Name。

Dog表包含品种的名称和id。性别表包括狗品种的id,id和性别。名称表包括狗的名字,性别ID以及它的年龄。

以下列方式建立关系。狗 - >性别 - >名称。

根据狗的身份,将所有狗的名字和性别拉出来的最佳方式是什么?我知道我必须使用加入,而且老实说,我并不是那么精通。

Psuedo代码我想出了

加入狗的性别上的名字。这是对的吗?

DOG

ID,姓名,性别ID,年龄

  • 1,Holey,2,7
  • 2,蓬松,1,3

性别

id,sex,breed id

  • 1,男,1
  • 2,女,1

NAME

id,name,breed id

  • 1,男,1
  • 2,女,1

1 个答案:

答案 0 :(得分:0)

您的SQL应该如下所示:

SELECT Breed.Breed, Gender.Sex, Dog.Name FROM Dog 
JOIN Gender ON Dog.GenderID = Gender.ID 
JOIN Breed ON Gender.BreedID = Breed.ID
WHERE Dog.ID = 'YourDogIDHere'

它将返回以下内容:

品种|性爱|名称
 -------- | -------- | -------
 牧羊犬|男|蓬松
 牧羊犬|女|多孔

修改:已修改为包含品种和重新排序列。