同一表格中的关系详情

时间:2018-02-13 13:28:56

标签: mysql sql

我正在编写一个将cat_id的查询,并检查是否有parent_id。如果有,请返回cat_name的{​​{1}}。

以下是该表的示例:

enter image description here

我试图使用嵌套查询,但我认为这甚至不是很接近。

parent_id

有人能指出我正确的方向吗?

第二次尝试:

SELECT cat_name
FROM exp_categories
WHERE parent_id = (SELECT parent_id 
                   FROM exp_categories
                   WHERE cat_id = '2'

3 个答案:

答案 0 :(得分:0)

试试这个:

SELECT A.cat_name
FROM exp_categories A
JOIN exp_categories B ON A.parent_id = B.cat_id
WHERE A.cat_id=2;

答案 1 :(得分:0)

INNER JOIN可以解决您的问题。

SELECT cat2.cat_name
FROM exp_categories AS cat1
INNER JOIN exp_categories AS cat2 ON cat1.cat_id = cat2.parent_id

答案 2 :(得分:0)

您可以使用具有相同表的内连接(自连接)来避免子选择,并将第二个表过滤为cat_id = 2

  SELECT A.cat_name
  FROM exp_categories A
  JOIN exp_categories B ON A.parent_id = B.cat_id 
          and b.cat_id=2;