从表中检索两次相同的列

时间:2010-02-24 08:39:56

标签: sql mysql

我有一个名为“address”的表,其中包含:

  • ID
  • title
  • parent_id

...字段。

在标题栏中,插入区域和地区的名称。区域的parent_id值为零,区域的parent_id为区域的id。

我想要一个查询,它在一列中显示区域,而在另一列中显示相应的区域。

2 个答案:

答案 0 :(得分:5)

你可以像这样加入桌子:

SELECT
   R.Title AS Region,
   D.Title AS District
FROM
   address R
INNER JOIN
   address D
   ON
   D.parent_id = R.id
   AND
   D.parent_id > 0
WHERE
   R.parent_id = 0

但是你的表结构有点奇怪,我会对数据库规范化做一些阅读。

答案 1 :(得分:0)

使用以下内容:

Select r.Region, s.State 
from
    (Select id, title as Region from address where parent_id=0) as r,
    (Select id, title as State, parent_id from address where parent_id>0) as s
where s.parent_id = r.id

它是ANSI SQL。您可以根据需要进一步调整它。