查询连接相同的表错误

时间:2017-05-04 14:18:56

标签: mysql sql join subquery

我的数据表如下所示:

term_id         description     parent
 3048           India           3047
 3049           Srilanka        3047
 3311           Tamilnadu       3048
 3312           Karnataka       3048
 3313           Kerala          3048
 3314           columbu         3049
 3315           columbu1        3049

我想得到下表的结果。

Country      State
 India       Tamilnadu
 India       Karnataka
 India       Kerala
 Srilanka    columbu
 Srilanka    columbu1

我尝试了以下但我没有得到确切的结果。

SELECT b.description as country, 
  (SELECT a.description 
   FROM `xt_term_taxonomy` a 
   WHERE a.`parent` IN (b.term_id) ) as state 
FROM `xt_term_taxonomy` b 
WHERE a.`taxonomy` 

您能告诉我如何更新它以获得所需的结果吗?

1 个答案:

答案 0 :(得分:1)

既然你想要父(国家)和子(国家),你会想要一起加入桌子:

SELECT 
    c.description as country, 
    s.description as state
FROM `xt_term_taxonomy` c 
INNER JOIN `xt_term_taxonomy` s 
    on c.term_id = s.parent;

INNER JOIN将返回所有国家及其州,如果您想要所有国家,即使他们没有州,也请使用LEFT JOIN。这是demo