【问题标题】:Query join same table error查询连接同表错误
【发布时间】:2023-04-01 12:51:01
【问题描述】:

我的数据表如下所示:

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` 

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

【问题讨论】:

标签: mysql sql join subquery


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多