2015-07-13 66 views
1

以下是我的查询,其中需要获取特定项目类别的parentidid别名。但是,我目前只能得到id而不是别名。从Mysql查询中检索数据的问题

我遇到的问题是如何获得parentid别名和id别名与结果。例如,如果一个项目的ID为2099,父ID为5,我想获取匹配ID的别名和匹配ID的父ID。

这里是我的代码:

SELECT a.string, b.id, b.alias ,c.title, c.alias as calias, c.parent_id as pid 
     FROM tbl_fields a, tbl__content b ,tbl_categories c 
     WHERE a.fields_id='75' AND a.value_string = 'steel' AND a.content_id = b.id AND b.categories_id = c.id 

我的表结构是:

enter image description here

这是我想要的结果是: “从” 之间

City hotel - hotel - appartment 
Luxury Hotel - hotel - apartment 
+0

这是不相关的PHP的。另外,SQL中的语法错误 – Raptor

+0

在“From”和“fields a”之间添加空格使用'FROM fields a'而不是'FROMfields a' – Hassaan

+1

使用显式连接语法。此代码是1996年代 – Drew

回答

1

因为它只是一个层级多达你想看到(即没有递归),所有你需要做的就是加入了类别表两次:

select content.item, cat_parent.alias, cat_self.alias 
from content 
join categories cat_self on cat_self.id = content.categories_id 
join categories cat_parent on cat_parent.id = cat_self.parent_id 
where content.id in 
(
    select content_id 
    from fields 
    where fields_id = 75 
); 
0

添加空间和“领域a”。

使用

FROM fields a

代替

FROMfields a

+0

谢谢我修好了。我的问题是如何获得父母id别名和id别名与结果。请咨询例如:编号2099父母身份证是5,所以我想获得匹配ID和父母身份证的别名匹配ID – jzon

0

重命名字符串列名。你不能使用数据类型作为你的列名。

参考Naming scheme of database table fields

+0

谢谢。是的,正确的颜色名称是value_string,..其我的类型我跳过值部分 – jzon

+0

我遇到的问题是如何获得父id id别名和id别名与结果。请咨询例如:编号2099父母身份证是5,所以我想获得匹配的ID别名和匹配ID的父母ID别名 – jzon