如何从表中选择行

时间:2010-06-12 11:24:19

标签: sql

我的表包含category_name和parent_category_Id列

我的parent_category数据包含相同的表主键ID。

我需要选择所有行并输入我的parent_category_Id我需要选择catogry_name

3 个答案:

答案 0 :(得分:1)

我认为这就是你所追求的,尽管很难从这个问题中看出来:

Select c.*
From category c 
  Join parent_category pc ON c.parent_category_id = pc.id
Where pc.category_name = 'Some Name'

答案 1 :(得分:0)

尝试类似:

 SELECT c.category_name, p.category_name
  FROM categories c LEFT JOIN parent_categories p
  ON c.parent_id = p.id    

PS:您可能会考虑重组数据库,将所有类别存储在同一个表中会更有意义。例如,请参阅:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

答案 2 :(得分:0)

您应该重新构建数据库,使其具有以下表格:

id,name和parent列,其中父列引用同一个表的id列。您当前的数据库未规范化,可能会在将来引发问题。

至少应该在类别表中有一个auto_increment id列。

此处的其他答案是正确的(取决于您使用的SQL服务器)。